public UpdateAccountServiceResult UpdateAccount(UpdateAccountServiceModel model) { var applicationUserManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = applicationUserManager.FindById(model.UserId); user.Email = model.Email; user.FamilyName = model.FamilyName; user.AwesomenessNumber = model.AwesomenessNumber; user.GivenName = model.GivenName; user.PhoneNumber = model.PhoneNumber; user.RegistrationDate = model.RegistrationDate; user.TwitterAccount = model.TwitterAccount; var result = new UpdateAccountServiceResult { Succeeded = AccountUpdateResult.Failed, Errors = new List <string>() }; if (!string.IsNullOrEmpty(model.NewPassword) && model.NewPassword == model.ConfirmPassword) { //Validate password var validatePasswordResult = applicationUserManager.PasswordValidator.ValidateAsync(model.NewPassword).Result; if (validatePasswordResult.Succeeded) { user.PasswordHash = applicationUserManager.PasswordHasher.HashPassword(model.NewPassword); //Update User and change password var updateResult = applicationUserManager.UpdateAsync(user).Result; result.Succeeded = (AccountUpdateResult)Convert.ToInt32(updateResult.Succeeded); result.Errors = updateResult.Errors; } else { result.Succeeded = AccountUpdateResult.InvalidPassword; result.Errors = validatePasswordResult.Errors; } } else {//Update user without changing password var updateResult = applicationUserManager.UpdateAsync(user).Result; result.Succeeded = (AccountUpdateResult)Convert.ToInt32(updateResult.Succeeded); result.Errors = updateResult.Errors; } return(result); }
public ActionResult Edit(UpdateAccountServiceModel model) { if (!ModelState.IsValid) { return(View(model)); } var result = accountService.UpdateAccount(model); if (result.Succeeded == Enumerations.AccountUpdateResult.InvalidPassword) {//Add password error to model errors, if password did not pass validation ModelState.AddModelError("NewPassword", result.Errors.ToList()[0]); return(View(model)); } if (result.Succeeded == Enumerations.AccountUpdateResult.Failed) { model.Errors = result.Errors.ToList(); return(View(model)); } return(RedirectToAction("List", new { email = model.Email })); }
public UpdateAccountServiceModel GetAccountViewModel(string accountId) { var applicationUserManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = applicationUserManager.FindById(accountId); var result = new UpdateAccountServiceModel { AwesomenessNumber = user.AwesomenessNumber, TwitterAccount = user.TwitterAccount, NewPassword = null, ConfirmPassword = null, Email = user.Email, FamilyName = user.FamilyName, GivenName = user.GivenName, PhoneNumber = user.PhoneNumber, RegistrationDate = user.RegistrationDate, UserId = user.Id, Errors = new List <string>() }; return(result); }