public async Task <ActionResult> Edit(ProfileUpdateVM model) { if (ModelState.IsValid) { var userData = await _userManager.FindByNameAsync(User.Identity.Name); if (!model.EMail.Equals(userData.Email)) { //var emailChangeToken = await _userManager.GenerateChangeEmailTokenAsync(userData, model.EMail); //var emailChangeResult = await _userManager.ChangeEmailAsync(userData, model.EMail, emailChangeToken); //if (!emailChangeResult.Succeeded) //{ // ModelState.AddModelError("GeneralError", "We couldn't change the EMail, please check your input"); // return View(model); //} } if (model.NewPassword != null && model.NewPassword != String.Empty) { var hashedOldPassword = PasswordHasher.HashPassword(model.OldPassword); var hashedNewPassword = PasswordHasher.HashPassword(model.NewPassword); if (!hashedOldPassword.Equals(hashedNewPassword)) { var passwordChangeResult = await _userManager.ChangePasswordAsync(userData, model.OldPassword, model.NewPassword); if (!passwordChangeResult.Succeeded) { ModelState.AddModelError("GeneralError", "We couldn't change the Password, please check your input"); return(View(model)); } } } if (((model.PictureUrl.IsNullOrEmpty() && !userData.PictureUrl.IsNullOrEmpty()) || (!model.PictureUrl.IsNullOrEmpty() && userData.PictureUrl.IsNullOrEmpty()) || (!model.PictureUrl.IsNullOrEmpty() && !userData.PictureUrl.IsNullOrEmpty() && !model.PictureUrl.Equals(userData.PictureUrl))) || !model.EMail.Equals(userData.Email)) { userData.UserName = !model.EMail.Equals(userData.Email) ? model.EMail : userData.Email; userData.Email = userData.UserName; userData.PictureUrl = !model.PictureUrl.IsNullOrEmpty() ? model.PictureUrl : ""; var pictureUpdateResult = await _userManager.UpdateAsync(userData); if (!pictureUpdateResult.Succeeded) { ModelState.AddModelError("GeneralError", "We couldn't update your data, please check your the form values"); return(View(model)); } } } else { return(View(model)); } return(RedirectToAction("Logout", "Authentication")); }
public async Task <ActionResult <RegisterVM> > Edit() { var user = await _userManager.FindByNameAsync(User.Identity.Name); ProfileUpdateVM vm = new ProfileUpdateVM(); vm.EMail = user.Email; vm.PictureUrl = user.PictureUrl; return(View(vm)); }