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")));
            }
        }