internal static PropertyValidations <T> MustBeNull <T>(this PropertyValidations <T> validator) { if (validator.Property != null) { validator.AddError($"{validator.Alias} must be null"); } return(validator); }
internal static PropertyValidations <T> MustBeDefault <T>(this PropertyValidations <T> validator) { if (!validator.Property.Equals(default(T))) { validator.AddError($"{validator.Alias} must be default"); } return(validator); }
//************************************************** //* Object validations //************************************************** internal static PropertyValidations <T> CannotBeNull <T>(this PropertyValidations <T> validator) { if (validator.Property == null) { validator.AddError($"{validator.Alias} cannot be null"); } return(validator); }
internal static PropertyValidations <string> MustBeEmpty(this PropertyValidations <string> validator) { if (validator.Property != string.Empty) { validator.AddError($"{validator.Alias} must be empty"); } return(validator); }
internal static PropertyValidations <int> MustBeLessThan(this PropertyValidations <int> validator, int threshold) { if (!(validator.Property < threshold)) { validator.AddError($"{validator.Alias} must be less than {threshold}"); } return(validator); }
internal static PropertyValidations <int> MustBeLessThanOrEqualTo( this PropertyValidations <int> validator, int threshold) { if (validator.Property > threshold) { validator.AddError($"{validator.Alias} must be less than or equal to {threshold}"); } return(validator); }
internal static PropertyValidations <T> IfThen <T>( this PropertyValidations <T> validator, bool condition, Func <PropertyValidations <T>, PropertyValidations <T> > doIfTrue) { if (condition) { doIfTrue.Invoke(validator); } return(validator); }
internal static PropertyValidations <T> MustEqual <T>( this PropertyValidations <T> validator, T objectToCompare, string objectToCompareAlias = null) { if (!validator.Property.Equals(objectToCompare)) { objectToCompareAlias = objectToCompareAlias ?? nameof(objectToCompare); validator.AddError($"{validator.Alias} must equal {objectToCompareAlias}"); } return(validator); }
//************************************************** //* ICollection<T> validations //************************************************** internal static PropertyValidations <ICollection <TModel> > ValidateEnumerable <TModel>( this PropertyValidations <ICollection <TModel> > validations, Action <EnumerablePropertyValidation <TModel> > action) { if (validations.Property == null) { throw new NullReferenceException("Collection cannot be null to validate."); } foreach (var model in validations.Property) { var enumerablePropertyValidation = new EnumerablePropertyValidation <TModel>(model, validations.Identifier); action.Invoke(enumerablePropertyValidation); } return(validations); }