public async Task <IEnumerable <string> > EditRoles(string userName, RolesForEdit rolesForEdit) { var user = await _userManager.FindByNameAsync(userName); var userRoles = await _userManager.GetRolesAsync(user); var selectedRoles = rolesForEdit.RoleNames; selectedRoles = selectedRoles ?? new string[] { }; var result = await _userManager.AddToRolesAsync(user, selectedRoles.Except(userRoles)); if (!result.Succeeded) { throw new Exception("Failed to add to roles"); } result = await _userManager.RemoveFromRolesAsync(user, userRoles.Except(selectedRoles)); if (!result.Succeeded) { throw new Exception("Failed to remove the roles"); } return(await _userManager.GetRolesAsync(user)); }
public async Task <IActionResult> EditRoles(string userName, RolesForEdit rolesForEdit) { return(Ok(await _userService.EditRoles(userName, rolesForEdit))); }