public async Task <string> UpdatePassword(InputChangePasswordDto input) { var usr = await _userManager.FindByIdAsync(input.UserId); try { if (usr == null) { return(null); } var code = await _userManager.GeneratePasswordResetTokenAsync(usr); var IR = await _userManager.ResetPasswordAsync(usr, code, input.NewPassword); if (!IR.Succeeded) { return(IR.Errors.FirstOrDefault().Code); } } catch (DbUpdateConcurrencyException) { throw; } return("Success"); }
public async Task <ChangePasswordResult> ChangePassword([FromBody] InputChangePasswordDto input) { try { EmailService emailService = new EmailService(_configuration, _smtp); var user = await _userManager.FindByIdAsync(input.UserId); if (user == null) { return(ChangePasswordResult.UserNotFound); } else { if (input.ConfirmPassword != input.NewPassword) { return(ChangePasswordResult.NewPasswordDoesntMatchConfirm); } var result = await _signInManager.PasswordSignInAsync(user, input.Password, false, false); if (!result.Succeeded) { return(ChangePasswordResult.OldPasswordNotCorrect); } var resultChange = await _userManager.ChangePasswordAsync(user, input.Password, input.NewPassword); if (resultChange.Succeeded) { string sbjCode = "Mona Password change"; string htmlMsgCode = "<div style ='width: 100%; padding: 2%; margin: 2%;color:black;font-size: 13px; font-weight: 400;'>" + "<div><a href=''><div><img src='https://mona.com/assets/logo.png' width='200' height='22'></div></a></div>" + "<br>" + "<br>" + "<div><h3 style='text-align: center;font-size: 23px;'> Your password changed </h3></div>" + "<br>" + "<br>" + "<div><span style='color: black; font-size: 15px; font-weight: 600;'> Dear" + user.UserName + ", </span></div>" + "<br>" + "<div><span>Your password has change on " + DateTime.Now.ToString("G", CultureInfo.CreateSpecificCulture("en-US")) + ".</span></div>" + "<br>" + "<div><span>Thanks.</span></div>" + "<br>" + "<div><span>In case of any problem, do not hesitate to contact us at<span style='text-decoration: underline;'>[email protected] . </span></span></div>" + "</div>"; //await emailService.SendEmail(user.Email, sbjCode, htmlMsgCode); result = await _signInManager.PasswordSignInAsync(user, input.NewPassword, true, false); if (result.Succeeded) { var token = GenerateJwtToken(user.UserName, user); return(ChangePasswordResult.Successed); } return(ChangePasswordResult.Failer); } return(ChangePasswordResult.Failer); } } catch (Exception ex) { return(ChangePasswordResult.Exception); } }