public async Task <ForgotPasswordResultModel> ForgotPasswordAsync(ForgotPasswordViewModel model, IUrlHelper url, string callAction, string controller, string scheme) { ApplicationUser user = await _userManager.FindByEmailAsync(model.Email); if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { return(new ForgotPasswordResultModel { IsSuccesed = false, HasUser = false, ForgotResult = "Error to access current user." }); } var code = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = GenerateCallbackLink(url, callAction, controller, user.Id, code, scheme); await _emailSenderService.SendEmailResetPasswordAsync(new EmailResetPasswordModel { Email = model.Email, Link = callbackUrl }); return(new ForgotPasswordResultModel { IsSuccesed = true, HasUser = true, ForgotResult = "Success" }); }