// // GET: /Roles?tc=ulstu public ActionResult Index(string tc = "") { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var model = new SelectionUsersRolesViewModel(); var roles = new List <IdentityRole>(); if (tc.Equals("") || tc.Equals("empty")) { roles = context.Roles.Where(x => !x.Name.Contains("_")).OrderBy(r => r.Name).ToList();//только общие роли admin и manager } else { tc = string.Format("_{0}", tc); roles = context.Roles.Where(x => x.Name.Contains(tc)).OrderBy(r => r.Name).ToList();//роли admin_tc, etc. } foreach (var user in context.Users) { var userViewModel = new SelectionUserEditorViewModel() { Id = user.Id, UserName = user.UserName }; userViewModel.Roles = roles.Select( role => new SelectionRoleEditorViewModel() { Name = role.Name, Selected = userManager.IsInRole(user.Id, role.Name) }).ToList(); model.Users.Add(userViewModel); } ViewBag.Roles = roles; return(View(model)); }
private bool needAddRole(UserManager <ApplicationUser> userManager, SelectionUserEditorViewModel user, SelectionRoleEditorViewModel role) { return(!userManager.IsInRole(user.Id, role.Name) && role.Selected); }