public async Task <ActionResult> UserEdit(AdminUserEditViewResult model) { if (ModelState.IsValid) { ApplicationUserEntity user = UserManager.FindById(model.User.Id); if (user != null) { //Поиск claim Banned //Добавляем, если необходимо if ((model.Banned == true) && (user.Banned != true)) { user.Banned = true; } //Удаляем, если необходимо else if (user.Banned == true) { user.Banned = false; } //Очищаем все роли пользователя foreach (var role in UserManager.GetRoles(user.Id).ToList()) { await UserManager.RemoveFromRoleAsync(user.Id, role); } //Добавляем необходимы роли пользователя foreach (var role in model.SelectedRoles.Where(m => m.Checked).ToList()) { await UserManager.AddToRoleAsync(user.Id, role.Name); } model.Roles = RoleManager.Roles.ToList(); TempData["toastrMessage"] = String.Format("Пользователь {0} изменен", user.UserName); TempData["toastrType"] = "success"; UserManager.Update(user); return(View("UserEdit", model)); } else { return(View("UserEdit", model)); } } else { return(View("UserEdit", model)); } }
public ActionResult UserEdit(string id, string returnUrl) { if (id == null) { return(RedirectToAction("NotFound", "Error")); } AdminUserEditViewResult result = new AdminUserEditViewResult(); var claims = UserManager.GetClaims(id); var banned = claims.FirstOrDefault(m => m.Type == "Banned"); result.Roles = RoleManager.Roles.ToList(); result.User = UserManager.FindById(id); result.returnUrl = returnUrl; result.Banned = Convert.ToBoolean(result.User.Banned); if (result.User != null) { return(View(result)); } else { return(RedirectToAction("NotFound", "Error")); } }