public async Task <ActionResult> EditAsync(EditableUserView model) { if (ModelState.IsValid) { ApplicationUser user = await UserManager.FindByEmailAsync(model.Email); if (user != null) { if (UserManager.HasPassword(user.Id)) { if (!string.IsNullOrEmpty(model.Password)) { UserManager.RemovePassword(user.Id); UserManager.AddPassword(user.Id, model.Password); } user.Email = model.Email; //user.UserName = model.UserName; user.PhoneNumber = model.PhoneNumber; UserManager.RemoveFromRole(model.Id, GetUserRoles(model.Email).FirstOrDefault()); UserManager.AddToRole(model.Id, model.SelectedRole); } else { ModelState.AddModelError("", "Произошла ошибка. Попробуйте ещё раз."); } UserManager.Update(user); } return(RedirectToAction("Index")); } return(RedirectToAction("Edit", new { id = model.Id })); }
private EditableUserView CreateEditableUserView(ApplicationUser user) { EditableUserView _view = new EditableUserView { Id = user.Id, Email = user.Email, UserName = user.UserName, PhoneNumber = user.PhoneNumber, Roles = new SelectList(new List <SelectListItem> { new SelectListItem { Text = "Client", Value = "Client", Selected = true }, new SelectListItem { Text = "Admin", Value = "Admin", Selected = false }, new SelectListItem { Text = "Moderator", Value = "Moderator", Selected = false }, new SelectListItem { Text = "Rater", Value = "Rater", Selected = false }, new SelectListItem { Text = "Partner", Value = "Partner", Selected = false } }, "Value", "Text"), SelectedRole = GetUserRoles(user.Email).FirstOrDefault() }; return(_view); }
public async Task <ActionResult> Edit(string id) { if (id == null) { throw new HttpException(400, String.Empty); } var _user = await UserManager.FindByIdAsync(id.ToString()); if (_user == null) { return(HttpNotFound()); } EditableUserView _userView = CreateEditableUserView(_user); return(View(_userView)); }