Я новичок в Identity 2 и C#.Каков наилучший способ создания этого списка?
Я хочу создать список адресов электронной почты, связанных с пользователями, которые находятся в текущей выбранной роли, на что ссылается role.RoleId.
Я делаю это не так, я просто знаю это ....
до сих пор я пытался
List<UsersEmailViewModel> EmailList = new List<UsersEmailViewModel>() { new UsersEmailViewModel { Email = ???? } }
Не знаете, как создать элемент списка для каждого пользователя, который в Роль.
также начал пробовать
List<UsersEmailViewModel> EmailList = from l in UserManager.Users.Where(x => x.Roles.Any(y => y.RoleId == role.RoleId)) select new UsersEmailViewModel { Email = l.email }
Но получаю сообщение об ошибке, что он не может преобразовать.
if (user.Roles.Count() > 0)
{
List<IdentityUserRole> userRoles = user.Roles.ToList();
foreach (var role in userRoles)
{
var dbrole = RoleManager.Roles.SingleOrDefault(x => x.Id == role.RoleId);
if ((UserManager.IsInRole(User.Identity.GetUserId(), "Admin")) || (UserManager.IsInRole(User.Identity.GetUserId(), "SuperAdmin")))
{
boundUser.Roles.Add(new RoleViewModel()
{
RoleName = dbrole.Name,
RoleId = role.RoleId,
//EmailList = Want to create list of only Email Addresses of Accounts in Role
});
}
else
{
boundUser.Roles.Add(new RoleViewModel()
{
RoleName = dbrole.Name,
RoleId = "Redacted",
EmailList = new List<UsersEmailViewModel>() { new UsersEmailViewModel { Email = "Redacted" } }
});
}
}
}
public class RoleViewModel
{
public string RoleId { get; set; }
public string RoleName { get; set; }
public List<UsersEmailViewModel> EmailList { get; set; }
}
public class UsersEmailViewModel
{
public string Email { get; set; }
}