public async Task <IActionResult> EditUser(int id, EditUserFormView editUserFormView, string returnUrl = null) { ApplicationUser user = await _userManager.FindByIdAsync(id.ToString()); if (id == 0) { return(BadRequest()); } user.UserName = editUserFormView.UserName; user.Email = editUserFormView.Email; user.Firstname = editUserFormView.Firstname; user.LastName = editUserFormView.Lastname; user.PhoneNumber = editUserFormView.PhoneNumber.ToString(); string existingRole = _userManager.GetRolesAsync(user).Result.Single(); int existingRoleId = _roleManager.Roles.Single(r => r.Name == existingRole).Id; IdentityResult result = await _userManager.UpdateAsync(user); if (result.Succeeded) { if (existingRoleId != editUserFormView.RoleId) { IdentityResult roleResult = await _userManager.RemoveFromRoleAsync(user, existingRole); if (roleResult.Succeeded) { ApplicationRole applicationRole = await _roleManager.FindByIdAsync(editUserFormView.RoleId.ToString()); if (applicationRole != null) { IdentityResult newRoleResult = await _userManager.AddToRoleAsync(user, applicationRole.Name); if (newRoleResult.Succeeded) { } } } } return(RedirectToAction("Index", "Admin")); } return(View(editUserFormView)); }
public IActionResult EditUser(EditUserFormView userFormView, string returnUrl = null) { if (userFormView.Id == 0) { return(BadRequest()); } var user = _unitOfWork.User.GetUser(userFormView.Id); var model = new EditUserFormView { Firstname = user.Firstname, Lastname = user.LastName, UserName = user.UserName, Email = user.Email, PhoneNumber = user.PhoneNumber, RoleId = _roleManager.Roles.Single(r => r.Name == _userManager.GetRolesAsync(user).Result.Single()).Id, ApplicationRoles = _unitOfWork.Role.GetRoles() }; return(View(model)); }