public async Task <IActionResult> ManageUserRoles(UseRoleDto model, int id) { var userId = id.ToString(); var user = await _userManager.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found"; return(View("NotFound")); } var roles = await _userManager.GetRolesAsync(user); var result = await _userManager.RemoveFromRolesAsync(user, roles); if (!result.Succeeded) { ModelState.AddModelError("", "Cannot remove user existing roles"); return(View(model)); } result = await _userManager.AddToRoleAsync(user, model.RoleName); if (!result.Succeeded) { ModelState.AddModelError("", "Cannot add selected roles to user"); return(View(model)); } return(RedirectToAction("Edit", new { Id = userId })); }
public async Task <IActionResult> ManageUserRoles(int id) { ViewBag.userId = id; var userid = id.ToString(); var user = await _userManager.FindByIdAsync(userid); if (user == null) { ViewBag.ErrorMessage = $"User with Id = {userid} cannot be found"; return(View("Not Found")); } var model = new List <UseRoleDto>(); foreach (var role in _roleManager.Roles) { var userRoleDto = new UseRoleDto { RoleId = role.Id.ToString(), RoleName = role.Name }; if (await _userManager.IsInRoleAsync(user, role.Name)) { userRoleDto.IsSelected = true; } else { userRoleDto.IsSelected = false; } model.Add(userRoleDto); } return(View(model)); }