public async Task <IActionResult> Manage(string UserId) { var user = await userManagerService.FindByIdAsync(UserId); var userRoles = await userManagerService.GetRolesAsync(user); var model = new List <UserRolesViewModel>(); var userRolesProperties = new UserRolesProperitiesViewModel(); foreach (var role in roleManagerService.Roles) { var userRolesViewModel = new UserRolesViewModel { RoleId = role.Id, RoleName = role.Name, UserId = UserId }; bool hasRole = false; foreach (var userRole in userRoles) { if (userRole == role.Name) { hasRole = true; } userRolesViewModel.IsSelected = hasRole; } model.Add(userRolesViewModel); } userRolesProperties.UserRoles = model.OrderBy(x => x.RoleName).ToList(); userRolesProperties.ApplicationUser = user; return(View(userRolesProperties)); }
public async Task <IActionResult> Manage(UserRolesProperitiesViewModel Model) { var userId = Model.UserRoles.Select(x => x.UserId).FirstOrDefault(); var user = await userManagerService.FindByIdAsync(userId); var roles = await userManagerService.GetRolesAsync(user); var result = await userManagerService.RemoveFromRolesAsync(user, roles); result = await userManagerService.AddToRolesAsync(user, Model.UserRoles.Where(x => x.IsSelected == true).Select(x => x.RoleName)); return(RedirectToAction("Manage", "User")); }