Typed Member from IMember
# help-with-umbraco
g
Is there a way to get a type member from iMember e.g.
Copy code
csharp
var members = _memberService.GetMembersByMemberType("employee");

foreach (var member in members) {   
  var typedMember = (Employee)member;
  collection.Add($"{typedMember.FirstName} {typedMember.EmployeeId}")
}
j
The modelsbuilder models are based on the IPublishedContent/Element cache models for content/members, etc. so there is no direct path to converting from an IMember to a modelsbuilder typed member model. You'd have to convert the IMember to IPublishedContent and then cast to your typed member. The IMemberManager has a way to convert a
MemberIdentityUser
to IPublishedContent, so you could do something like
Copy code
csharp
var members = _memberService.GetMembersByMemberType("employee");

foreach (var member in members) {
    var memberIdentityUser = await _memberManager.FindByIdAsync(member.Id);
    var memberPublishedContent = _memberManager.AsPublishedMember(memberIdentityUser);

    if(memberPublishedContent is Employee typedMember){
        collection.Add($"{typedMember.FirstName} {typedMember.EmployeeId}")
    }
}
Don't think there is a simpler way.. In your example I'd just get the properties from the IMember tbh..
g
Yeah appreciate that's the approach... and it's where I'd got too... I'm upgrading a V8 project where this was possible. No worries, thank you.
8 Views