public async Task <IActionResult> ChangePasswordCandidate(EditCandidateProfileViewModel model) { ModelState.ClearValidationState("Candidate"); if (ModelState.IsValid) { var user = await signInManager.UserManager.GetUserAsync(this.User); if (user == null) { return(RedirectToAction("Login", "Account")); } var reuslt = await signInManager.UserManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword); if (!reuslt.Succeeded) { foreach (var error in reuslt.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View("EditCandidateProfile")); } await signInManager.RefreshSignInAsync(user); toastNotification.AddSuccessToastMessage("Password Updated !", new NotyOptions { Theme = "metroui", Timeout = 1500, Layout = "topCenter" }); return(RedirectToAction("EditCandidateProfile")); } return(View("EditCandidateProfile", model)); }
public async Task <IActionResult> EditCandidateProfile() { var currentUser = this.User; var user = await signInManager.UserManager.GetUserAsync(currentUser); var model = new EditCandidateProfileViewModel { Candidate = user }; return(View(model)); }
public async Task <IActionResult> EditCandidateProfile(EditCandidateProfileViewModel model) { ModelState.MarkAllFieldsAsSkipped("Password"); var user = await signInManager.UserManager.GetUserAsync(this.User); if (user == null) { return(RedirectToAction("Login", "Account")); } if (model.ImageFile == null) { model.Candidate.Picture = user.Picture; } if (ModelState.IsValid) { try { if (model.ImageFile != null) { string imageFileName = new string(Path.GetFileNameWithoutExtension(model.ImageFile.FileName).Take(10).ToArray()).Replace(' ', '-'); string newFileName = imageFileName + '-' + Guid.NewGuid().ToString() + '.' + Path.GetExtension(model.ImageFile.FileName); string destination = Path.Combine(hostEnvironment.WebRootPath, "uploads/UserImages"); destination = Path.Combine(destination, newFileName); using (var fileStream = new FileStream(destination, FileMode.Create)) { model.ImageFile.CopyTo(fileStream); } user.Picture = newFileName; } user.Firstname = model.Candidate.Firstname; user.Lastname = model.Candidate.Lastname; user.Email = model.Candidate.Email; user.Address = model.Candidate.Address; user.PhoneNumber = model.Candidate.PhoneNumber; db.Update <User>(user); await db.SaveChangesAsync(); toastNotification.AddSuccessToastMessage("User Updated !", new NotyOptions { Theme = "metroui", Timeout = 1500, Layout = "topCenter" }); return(RedirectToAction("EditCandidateProfile")); } catch (Exception ex) { Console.WriteLine(ex.Message); } } return(View(model)); }