public async Task <IActionResult> Edit(string id, string roleName, string headername) { AppUser user = await _userManager.FindByIdAsync(id); if (user == null) { return(NotFound()); } UserChangeModelA model = new UserChangeModelA { Id = user.Id, Name = user.UserName, Email = user.Email, Phone = user.PhoneNumber }; model.AllRoles = await _dbContext.Roles.ToListAsync(); model.UserRoles = await _userManager.GetRolesAsync(user); model.RoleName = roleName; model.HeaderName = headername; return(View(model)); }
public async Task <IActionResult> Edit(UserChangeModelA model) { if (ModelState.IsValid) { AppUser user = await _userManager.FindByIdAsync(model.Id); if (user != null) { user.UserName = model.Name; user.Email = model.Email; user.PhoneNumber = model.Phone; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { var userRoles = await _userManager.GetRolesAsync(user); var allRoles = _dbContext.Roles.ToList(); var addedRoles = model.UserRoles.Except(userRoles); var removedRoles = userRoles.Except(model.UserRoles); await _userManager.AddToRolesAsync(user, addedRoles); await _userManager.RemoveFromRolesAsync(user, removedRoles); return(RedirectToAction("Users", new { roleName = model.RoleName, name = model.HeaderName })); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } } return(View(model)); }