Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [HttpPost]
- public async Task<ActionResult> Edit(string id, string email, string password)
- {
- AppUser user = await this.UserManager.FindByIdAsync(id);
- if (user != null)
- {
- user.Email = email;
- IdentityResult validEmail = await this.UserManager.UserValidator.ValidateAsync(user);
- if (!validEmail.Succeeded)
- {
- this.AddErrorsFromResult(validEmail);
- }
- IdentityResult validPass = null;
- if (password != string.Empty)
- {
- validPass = await this.UserManager.PasswordValidator.ValidateAsync(password);
- if (validPass.Succeeded)
- {
- user.PasswordHash = this.UserManager.PasswordHasher.HashPassword(password);
- }
- else
- {
- this.AddErrorsFromResult(validPass);
- }
- }
- if ((validEmail.Succeeded && validPass == null)
- || (validEmail.Succeeded && password != string.Empty && validPass.Succeeded))
- {
- IdentityResult result = await this.UserManager.UpdateAsync(user);
- if (result.Succeeded)
- {
- return this.RedirectToAction("Index");
- }
- this.AddErrorsFromResult(result);
- }
- }
- else
- {
- ModelState.AddModelError(string.Empty, "User not found");
- }
- return this.View(user);
- }
- private AppUserManager UserManager
- {
- get
- {
- return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();
- }
- }
- private void AddErrorsFromResult(IdentityResult result)
- {
- foreach (string error in result.Errors)
- {
- ModelState.AddModelError(string.Empty, error);
- }
- }
- public virtual async Task<IdentityResult> UpdateAsync(TUser user)
- {
- ThrowIfDisposed();
- if (user == null)
- {
- throw new ArgumentNullException("user");
- }
- var result = await UserValidator.ValidateAsync(user).ConfigureAwait(false);
- if (!result.Succeeded)
- {
- return result;
- }
- await Store.UpdateAsync(user).ConfigureAwait(false);
- return IdentityResult.Success;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement