public Task <ValidationResult> ValidateAsync(RegisterUserCommand item) { var validationResult = new ValidationResult(); if (string.IsNullOrEmpty(item.FirstName)) { validationResult.AddError(nameof(item.FirstName), "Enter first name"); } if (string.IsNullOrEmpty(item.LastName)) { validationResult.AddError(nameof(item.LastName), "Enter last name"); } if (string.IsNullOrWhiteSpace(item.Email) || !IsEmailValid(item.Email)) { validationResult.AddError(nameof(item.Email), "Enter a valid email address"); } if (string.IsNullOrEmpty(item.Password)) { validationResult.AddError(nameof(item.Password), "Enter password"); } else if (!_passwordService.CheckPasswordMatchesRequiredComplexity(item.Password)) { validationResult.AddError(nameof(item.Password), "Password requires upper and lowercase letters, a number and at least 8 characters"); } if (string.IsNullOrEmpty(item.ConfirmPassword)) { validationResult.AddError(nameof(item.ConfirmPassword), "Re-type password"); } else if (!string.IsNullOrEmpty(item.Password) && !item.ConfirmPassword.Equals(item.Password)) { validationResult.AddError(nameof(item.ConfirmPassword), "Passwords don't match"); } if (!item.HasAcceptedTermsAndConditions) { validationResult.AddError(nameof(item.HasAcceptedTermsAndConditions), "You need to accept the Terms and Conditions"); } return(Task.FromResult(validationResult)); }
public Task <ValidationResult> ValidateAsync(PasswordResetCommand item) { var validationResult = new ValidationResult(); var resetCode = item.User?.SecurityCodes?.OrderByDescending(sc => sc.ExpiryTime) .FirstOrDefault(sc => sc.Code.Equals(item.PasswordResetCode, StringComparison.InvariantCultureIgnoreCase) && sc.CodeType == Domain.SecurityCodeType.PasswordResetCode); if (resetCode == null) { validationResult.AddError(nameof(item.PasswordResetCode), "Reset code is invalid"); } else if (resetCode.ExpiryTime < DateTime.UtcNow && ConfigurationManager.AppSettings["UseStaticCodeGenerator"].Equals("false", StringComparison.CurrentCultureIgnoreCase)) { validationResult.AddError(nameof(item.PasswordResetCode), "Reset code has expired"); } if (string.IsNullOrEmpty(item.Password)) { validationResult.AddError(nameof(item.Password), "Enter a password"); } else if (!_passwordService.CheckPasswordMatchesRequiredComplexity(item.Password)) { validationResult.AddError(nameof(item.Password), "Password requires upper and lowercase letters, a number and at least 8 characters"); } if (string.IsNullOrEmpty(item.ConfirmPassword)) { validationResult.AddError(nameof(item.ConfirmPassword), "Re-type password"); } else if (!string.IsNullOrEmpty(item.Password) && !item.ConfirmPassword.Equals(item.Password)) { validationResult.AddError(nameof(item.ConfirmPassword), "Passwords don’t match"); } return(Task.FromResult(validationResult)); }