public async Task<ActionResult> ReadUser(SaveUserModel user) { if (ModelState.IsValid) { if (await UserService.UpdateAsync(user) != null) { ViewBag.Status = "Пользователь " + user.Name + " успешно сохранён"; return PartialView("Success"); } else { return HttpNotFound(); } } return View(); }
//Редактирование пользователя public async Task<SaveUserModel> UpdateAsync(SaveUserModel userUpdate) { CatalogUser findUser = await _userManager.FindByIdAsync(userUpdate.Id); if (findUser == null) { return null; } findUser.Name = userUpdate.Name; findUser.LastName = userUpdate.LastName; findUser.Email = userUpdate.Email; findUser.Activated = userUpdate.Activated; //если пользователю назначена группа if (userUpdate.Role != "Отсутствует") { //если у пользователя уже есть группа if (findUser.Roles.ToList().Count > 0) { //удаляем старую группу await _userManager.RemoveFromRoleAsync(findUser.Id, (await _userManager.GetRolesAsync(findUser.Id)).FirstOrDefault()); } //добовляем пользователю новую группу await _userManager.AddToRoleAsync(findUser.Id, userUpdate.Role); } else //если пользователю не назначена группа { //если у пользователя уже есть группа if (findUser.Roles.ToList().Count > 0) { //удаляем старую группу await _userManager.RemoveFromRoleAsync(findUser.Id, (await _userManager.GetRolesAsync(findUser.Id)).FirstOrDefault()); } } IdentityResult result = await _userManager.UpdateAsync(findUser); return result.Succeeded ? userUpdate : null; }