Exemplo n.º 1
0
        public ActionResult ForgotPasswordResult(int resultId)
        {
            var resultText = string.Empty;

            switch ((PasswordResetResults)resultId)
            {
            case PasswordResetResults.Successful:
                resultText = "Your password has been successfully reset and emailed to you. Please check your email now.";
                break;

            case PasswordResetResults.AccountNotExist:
            case PasswordResetResults.MemberNotExist:
                resultText = "Sorry, there is no account found with the entered email address.";
                break;

            case PasswordResetResults.IsLockedOut:
                resultText = "Sorry, your account has been locked out. Please contact <a href=\"mailto:[email protected]\">[email protected]</a>.";
                break;

            case PasswordResetResults.Error:
            default:
                resultText = "Sorry, there is an error in the system. Please contact <a href=\"mailto:[email protected]\">[email protected]</a>.";
                break;
            }

            var model = new ForgotPasswordResultModel
            {
                Result = resultText
            };

            return(View(model));
        }
        public async Task <ForgotPasswordResultModel> ForgotPasswordValidation
            ([FromBody] ForgotInformationModel forgotInformationModel)
        {
            try
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                if (forgotInformationModel.emailAddress == null || forgotInformationModel.username == null ||
                    forgotInformationModel.dateOfBirth == null)
                {
                    forgotPasswordResultModel.Success      = false;
                    forgotPasswordResultModel.ErrorMessage = ErrorMessage.Null.ToString();

                    return(forgotPasswordResultModel);
                }

                var forgotPasswordResult = await _loginManager.ForgotPasswordValidation
                                               (forgotInformationModel.username, forgotInformationModel.emailAddress,
                                               DateTimeOffset.Parse(forgotInformationModel.dateOfBirth));

                forgotPasswordResultModel.Success = forgotPasswordResult.WasSuccessful;

                if (forgotPasswordResultModel.Success)
                {
                    forgotPasswordResultModel.AccountId = forgotPasswordResult.SuccessValue.Id;
                }
                else
                {
                    forgotPasswordResultModel.ErrorMessage = forgotPasswordResult.ErrorMessage.ToString();
                }

                return(forgotPasswordResultModel);
            }
            catch (SqlCustomException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "Could not verify the information given. Try again.";

                return(forgotPasswordResultModel);
            }
            catch (NullReferenceException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "A null was returned when checking the inputs.";

                return(forgotPasswordResultModel);
            }
        }
        public async Task <ForgotPasswordResultModel> ForgotPasswordCodeInput
            ([FromBody] ForgotPasswordCodeInputModel forgotPasswordCodeInputModel)
        {
            try
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                if (forgotPasswordCodeInputModel.code == null)
                {
                    forgotPasswordResultModel.Success      = false;
                    forgotPasswordResultModel.ErrorMessage = ErrorMessage.Null.ToString();

                    return(forgotPasswordResultModel);
                }

                var forgotPasswordCodeResult = await _loginManager.ForgotPasswordCodeInput
                                                   (forgotPasswordCodeInputModel.code, forgotPasswordCodeInputModel.accountId);

                forgotPasswordResultModel.Success = forgotPasswordCodeResult.WasSuccessful;

                if (forgotPasswordResultModel.Success)
                {
                    forgotPasswordResultModel.AccountId = forgotPasswordCodeResult.SuccessValue.Id;
                }
                else
                {
                    forgotPasswordResultModel.ErrorMessage = forgotPasswordCodeResult.ErrorMessage.ToString();
                }

                return(forgotPasswordResultModel);
            }
            catch (SqlCustomException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "Failure to verify the code. Try again.";

                return(forgotPasswordResultModel);
            }
            catch (NullReferenceException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "A null was returned when checking the code.";

                return(forgotPasswordResultModel);
            }
        }
        public async Task <ForgotPasswordResultModel> ResetPassword
            ([FromBody] ResetPasswordModel resetPasswordModel)
        {
            try
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                if (resetPasswordModel.password == null)
                {
                    forgotPasswordResultModel.Success      = false;
                    forgotPasswordResultModel.ErrorMessage = ErrorMessage.Null.ToString();

                    return(forgotPasswordResultModel);
                }
                var resetPasswordResult = await _loginManager.ResetPassword(resetPasswordModel.password,
                                                                            resetPasswordModel.accountId);

                forgotPasswordResultModel.Success = resetPasswordResult.WasSuccessful;

                if (forgotPasswordResultModel.Success)
                {
                    forgotPasswordResultModel.AccountId = resetPasswordResult.SuccessValue.Id;
                }
                else
                {
                    forgotPasswordResultModel.ErrorMessage = resetPasswordResult.ErrorMessage.ToString();
                }

                return(forgotPasswordResultModel);
            }
            catch (SqlCustomException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "The password could not be changed. Try Again.";

                return(forgotPasswordResultModel);
            }
            catch (NullReferenceException)
            {
                var forgotPasswordResultModel = new ForgotPasswordResultModel();

                forgotPasswordResultModel.Success      = false;
                forgotPasswordResultModel.ErrorMessage = "No account has been found.";

                return(forgotPasswordResultModel);
            }
        }
        public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                ForgotPasswordResultModel result = await _userService.ForgotPasswordAsync(model, Url
                                                                                          , nameof(AccountController.ResetPassword), "Account", Request.Scheme);

                if (result.IsSuccesed)
                {
                    return(RedirectToAction(nameof(ForgotPasswordConfirmation)));
                }
                else if (result.HasUser)
                {
                    return(RedirectToAction(nameof(ForgotPasswordConfirmation)));
                }
                else
                {
                    return(RedirectToAction(nameof(ForgotPasswordConfirmation)));
                }
            }
            return(View(model));
        }