Esempio n. 1
0
        public IActionResult ChangePassword(ChangePasswordViewModel vm)
        {
            if (vm.NewPassword != vm.ConfirmedPassword)
            {
                ErrorHandler(nameof(RegisterPersonViewModel.ConfirmedPassword), "Passwords don't match.");
            }

            if (!ModelState.IsValid)
            {
                return(View(vm));
            }

            var request   = vm.ToRequest(CurrentUserId);
            var presenter = _presenterFactory.ChangePassword(MessageHandler, ErrorHandler);

            try
            {
                var uc       = _useCaseFactory.ChangePassword;
                var response = uc.Execute(request);
                return(RedirectToAction(nameof(Index), new { id = presenter.Present(response) }));
            }
            catch (InvalidRequestException ire)
            {
                presenter.PresentErrors(ire.Message, ire.Errors);
                return(View(vm));
            }
            catch (Exception e)
            {
                presenter.PresentMessage(MessageType.Error, e.Message);
                return(View(vm));
            }
        }