public async Task<ActionResult> EditUsers(AppUsersViewModel viewModel) { if (viewModel == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } AppIdentityUser orgUser = await _userMenagerService.GetUserById(viewModel.Id); if (orgUser == null) { ModelState.AddModelError("", "Error editing user role"); return View(); } Mapper.Map(viewModel, orgUser); IdentityResult result = await _userMenagerService.UpdateUserData(orgUser); if (!result.Succeeded) { result.Errors.ToList().ForEach(x => ModelState.AddModelError("", x.ToString())); return View(); } return RedirectToAction("GetUsers"); }
public async Task<ActionResult> AddUserToRole(AppUsersViewModel viewModel) { if (viewModel == null || viewModel.Id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } AppIdentityUser user = await _userMenagerService.GetUserById(viewModel.Id); IdentityRole userRole = await _userMenagerService.FindAppRoleById(viewModel.NewRole); IdentityUserRole orgUserRole = user.Roles.FirstOrDefault(); if (user == null || userRole == null) { ModelState.AddModelError("", "Error when adding new role"); return View(); } if (orgUserRole != null) { IdentityRole userOrgRole = await _userMenagerService.FindAppRoleById(orgUserRole.RoleId); IdentityResult resultRemove = await _userMenagerService.RemoveUserFromRoleAsync(user, userOrgRole.Name); if (!resultRemove.Succeeded) { resultRemove.Errors.ToList().ForEach(x => ModelState.AddModelError("", x.ToString())); return View(); } } IdentityResult result = await _userMenagerService.AddUserToRoleAsync(user, userRole.Name); if (!result.Succeeded) { result.Errors.ToList().ForEach(x => ModelState.AddModelError("", x.ToString())); return View(); } TempData["message"] = "User has been added to role"; return RedirectToAction("GetUsers"); }