예제 #1
0
 // Null
 public static SmoothValidatorBuilder <TObject, TError> Null <TObject, TError>(
     this SmoothValidatorBuilder <TObject, TError> builder,
     Func <TError> errorProvider
     ) where TObject : class
 {
     return(builder.True(
                value => value == null,
                errorProvider
                ));
 }
 // NotNullOrWhitespace
 public static SmoothValidatorBuilder <string, TError> NotNullOrWhitespace <TError>(
     this SmoothValidatorBuilder <string, TError> builder,
     Func <TError> errorProvider
     )
 {
     return(builder.True(
                str => !string.IsNullOrWhiteSpace(str),
                errorProvider
                ));
 }
 // Length
 public static SmoothValidatorBuilder <string, TError> Length <TError>(
     this SmoothValidatorBuilder <string, TError> builder,
     Func <LengthRange> lengthRangeProvider,
     Func <LengthRange, TError> errorProvider
     )
 {
     return(builder
            .MinLength(() => lengthRangeProvider.Invoke().Min, _ => errorProvider.Invoke(lengthRangeProvider.Invoke()))
            .MaxLength(() => lengthRangeProvider.Invoke().Max, _ => errorProvider.Invoke(lengthRangeProvider.Invoke())));
 }
예제 #4
0
 // Equals
 public static SmoothValidatorBuilder <TObject, TError> Equals <TObject, TError>(
     this SmoothValidatorBuilder <TObject, TError> builder,
     Func <TObject> objectProvider,
     Func <TError> errorProvider
     )
 {
     return(builder.True(
                value => EqualityComparer <TObject> .Default.Equals(value, objectProvider.Invoke()),
                errorProvider
                ));
 }
 // MaxLength
 public static SmoothValidatorBuilder <string, TError> MaxLength <TError>(
     this SmoothValidatorBuilder <string, TError> builder,
     Func <int> lengthProvider,
     Func <int, TError> errorProvider
     )
 {
     return(builder.True(
                value => value == null || value.Length <= lengthProvider.Invoke(),
                () => errorProvider.Invoke(lengthProvider.Invoke())
                ));
 }