Beispiel #1
0
        public async Task <IActionResult> ForgotPasswordConfirmation([FromBody] ForgotPasswordConfirmModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var user = await userManager.FindByEmailAsync(model.Email);

            if (user == null)
            {
                return(Ok(new { code = StatusMessage.EmailNotExist, result = false }));
            }

            if (model.Code == user.RestorePassCode)
            {
                await userManager.RemovePasswordAsync(user);

                var result = await userManager.AddPasswordAsync(user, model.Password);

                user.RestorePassCode = null;
                await userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(Ok(new { result = true }));
                }

                return(Ok(new { code = StatusMessage.ErrorChangePass, result = false }));
            }

            return(Ok(new { result = false, code = StatusMessage.WrongCode }));
        }
        public NewPasswordViewModel(INavigation navigation, ForgotPasswordModel forgotPasswordModel)
        {
            this.Navigation     = navigation;
            alertErrorMessage   = "Error!";
            alertSuccessMessage = "Success!";

            requestProvider = new RequestProvider();

            this.forgotPasswordConfirmModel  = new ForgotPasswordConfirmModel();
            forgotPasswordConfirmModel.Email = forgotPasswordModel.Email;

            code              = new ValidatableObject <string>();
            newPassword       = new ValidatableObject <string>();
            newRepeatPassword = new ValidatableObject <string>();

            AddValidations();
        }