public async Task <IActionResult> EditRole(RoleModificationViewModel model) { if (ModelState.IsValid) { foreach (int userId in model.IdsToAdd ?? new int[] {}) { var user = _userServices.GetItem(userId); if (user != null) { var result = await _userServices.AddToRoleAsync(user, model.RoleName); if (!result.Succeeded) { AddErrorsFromResult(result); } } } foreach (var userId in model.IdsToDelete ?? new int[] { }) { var user = _userServices.GetItem(userId); if (user != null) { var result = await _userServices.RemoveFromRoleAsync(user, model.RoleName); if (!result.Succeeded) { AddErrorsFromResult(result); } } } } if (ModelState.IsValid) { return(RedirectToAction(nameof(Roles))); } return(await EditRole(model.RoleId)); }