public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordRequest request, [FromServices] IEmailConfirmationService emailConfirmationService) { using (var repository = new Repository <User>(_provider)) { var user = await repository.Get(x => x.UserName == request.Email).SingleOrDefaultAsync(); if (user == null) { return(Json(ApiResponse.Success("Ссылка для восстановления пароля была выслана на указанный e-mail"))); } var code = emailConfirmationService.GenerateEmailConfirmationToken(user); var callbackUrl = Url.Action( "ResetPassword", "Registration", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); callbackUrl = callbackUrl.Replace("api/Registration/ResetPassword", "auth/resetpassword"); emailConfirmationService.SendForgotPasswordUrl(user.Email, callbackUrl); return(Json(ApiResponse.Success("Ссылка для восстановления пароля была выслана на указанный e-mail"))); } }