public async Task <IActionResult> AssignRole([FromBody] UserToRoleModel model) { var user = await userManager.FindByIdAsync(model.UserId); var role = await roleManager.FindByIdAsync(model.RoleId); if (await userManager.IsInRoleAsync(user, role.Name)) { return(BadRequest(new ReponseStatus { Status = "Failure", Message = "User already has the Role" })); } IdentityResult result = await userManager.AddToRoleAsync(user, role.Name); if (result.Succeeded) { return(Ok(new ReponseStatus { Status = "Success", Message = role.Name + " assigned to User" })); } ReponseStatus respStatus = new ReponseStatus(); foreach (IdentityError error in result.Errors) { respStatus.Message = respStatus.Message + error.Description + "\n"; } return(BadRequest(respStatus)); }
public async Task <IActionResult> AssignRole([FromBody] UserToRoleModel Model) { string userId = Model.UserId; ApplicationUser user = await userManager.FindByIdAsync(userId); //Remove Exisint Roles. var roles = await userManager.GetRolesAsync(user); await userManager.RemoveFromRolesAsync(user, roles.ToArray()); // List <string> roleIds = Model.RoleIds; List <RespStatus> ListRespStatus = new List <RespStatus>(); foreach (string RoleId in roleIds) { IdentityRole role = await roleManager.FindByIdAsync(RoleId); IdentityResult result = await userManager.AddToRoleAsync(user, role.Name); RespStatus respStatus; if (result.Succeeded) { respStatus = new RespStatus() { Message = role.Name + " assigned to User", Status = "Success" }; ListRespStatus.Add(respStatus); } else { respStatus = new RespStatus(); foreach (IdentityError error in result.Errors) { respStatus.Message = respStatus.Message + error.Description + "\n"; respStatus.Status = "Failure"; } ListRespStatus.Add(respStatus); } } return(Ok(ListRespStatus)); }