public async Task <IActionResult> ManageUsersInRole(UsersInRoleDTO model) { var role = await _roleManager.FindByIdAsync(model.Id); if (role == null) { ModelState.AddModelError("", "Role does not exist"); return(BadRequest(ModelState)); } foreach (string user in model.EnrolledUsers) { var appUser = await _userManager.FindByIdAsync(user); if (appUser == null) { ModelState.AddModelError("", String.Format("User: {0} does not exists", user)); continue; } if (_userManager.IsInRoleAsync(appUser, role.Name) == null) { IdentityResult result = await _userManager.AddToRoleAsync(appUser, role.Name); if (!result.Succeeded) { ModelState.AddModelError("", String.Format("User: {0} could not be added to role", user)); } } } foreach (string user in model.RemovedUsers) { var appUser = await _userManager.FindByIdAsync(user); if (appUser == null) { ModelState.AddModelError("", String.Format("User: {0} does not exists", user)); continue; } IdentityResult result = await _userManager.RemoveFromRoleAsync(appUser, role.Name); if (!result.Succeeded) { ModelState.AddModelError("", String.Format("User: {0} could not be removed from role", user)); } } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok()); }
public async Task <object> AddUsersInRoleAsync(UsersInRoleDTO usersInRoleDTO) { foreach (var userId in usersInRoleDTO.UsersId) { if (!string.IsNullOrEmpty(userId)) { var model = await this.userManager.FindByIdAsync(userId); var result = await this.userManager.AddToRoleAsync(model, usersInRoleDTO.RoleName); } } this.DisplayMessage = "Users role updated succesfully"; return(usersInRoleDTO); }
public async Task <object> AddUsersInRole([FromBody] UsersInRoleDTO model) { try { var data = await _repository.AddUsersInRoleAsync(model); _response.Result = data; _response.IsSuccess = _repository.IsSuccess; _response.ErrorMessages = _repository.ErrorMessages; _response.DisplayMessage = _repository.DisplayMessage; } catch (Exception ex) { _response.IsSuccess = false; _response.ErrorMessages = new List <ErrorMessageDTO>() { new ErrorMessageDTO() { Message = ex.ToString() } }; } return(_response); }