Beispiel #1
0
        public async Task <ResetPasswordResult> ForgotPassword(ForgotPasswordViewModel forgotPassword, string actionUrl)
        {
            var user = await _userManager.FindByEmailAsync(forgotPassword.Email);

            if (user == null)
            {
                return(new ResetPasswordResult(false, ResetPasswordError.InvalidEmail));
            }

            try
            {
                var resetToken = await _userManager.GeneratePasswordResetTokenAsync(user.Id);

                var url = GenerateTokenUrl(actionUrl, Core.Constants.SendGridAuthLink_ResetPassword, user.Id, resetToken);

                var result = await _sendGridLogic.SendPasswordReset(
                    $"{user.FirstName} {user.LastName}",
                    user.Email,
                    url.ToString());

                return(new ResetPasswordResult(true));
            }
            catch (Exception e)
            {
                return(new ResetPasswordResult(false, ResetPasswordError.Exception, e));
            }
        }