/// <summary>
 /// Validate form-level request
 /// </summary>
 /// <param name="validationDictionary"></param>
 public bool ValidateRequest(IValidationDictionary validationDictionary)
 {
     var requestDictionary = new ValidationDictionary();
     if (string.IsNullOrEmpty(ResetToken))
     {
         requestDictionary.AddError("ResetToken", "Reset token not specified.");
     }
     if (string.IsNullOrEmpty(Password))
     {
         requestDictionary.AddError("Password", "Password is required.");
     }
     if (Password != ConfirmPassword)
     {
         requestDictionary.AddError("Password", "Passwords do not match.");
     }
     validationDictionary.Merge(requestDictionary);
     return requestDictionary.IsValid;
 }
 /// <summary>
 /// Validate form-level request
 /// </summary>
 /// <param name="validationDictionary"></param>
 public bool ValidateRequest(IValidationDictionary validationDictionary)
 {
     var requestDictionary = new ValidationDictionary();
     if (Password != ConfirmPassword)
     {
         requestDictionary.AddError("Password", "Passwords do not match.");
     }
     validationDictionary.Merge(requestDictionary);
     return requestDictionary.IsValid;
 }
        public BaseResponseModel ResetPassword(ResetPasswordInputModel inputModel)
        {
            // Get existing user
            var vm = new BaseResponseModel();
            var validationState = new ValidationDictionary();
            inputModel.ValidateRequest(validationState);

            if (validationState.IsValid)
            {
                var user = UserService.GetUserByResetToken(inputModel.ResetToken);
                if (user != null)
                {
                    UserService.ResetPassword(user, inputModel.Password);
                    vm.Success = true;
                }
                else
                {
                    validationState.AddError("ResetToken", "Invalid reset token.");
                }
            }

            vm.Errors = validationState.Errors;

            return vm;
        }