public async Task ForgotPassword(ForgotPasswordAccountViewModel model) { ApplicationUser user = await _userManager.FindByEmailAsync(model.Email.ToUpper()); Require.Objects.NotNull <NotFoundException>(user, $"User not found"); var isEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user); if (!isEmailConfirmed) { throw new BadRequestException("Email is not confirmed."); } var code = await _userManager.GeneratePasswordResetTokenAsync(user); var url = $"{_appSettings.FrontEndUrl}account/reset-password?userId={HttpUtility.UrlEncode(user.Id)}&code={HttpUtility.UrlEncode(code)}"; var bodyBuilder = new StringBuilder(); var body = bodyBuilder.AppendLine($"Hi, {user.FirstName}! ") .Append($"Please click on <a href='{url}'>link</a> to reset passowrd.") .ToString(); _emailSender.SendMail(user.Email, "Reset Password", body); }
public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordAccountViewModel model) { await _accountService.ForgotPassword(model); return(Ok()); }