public static IArgumentValidation <IEnumerable <T?>?> IsNotEmpty <T>(this IArgumentValidation <IEnumerable <T?>?> argumentValidation)
 {
     argumentValidation.Validate(
         enumerable => enumerable == null || enumerable.Any(),
         parameterName => new ArgumentException(Resources.EnumerableConstraints.IsNotEmptyErrorMessage, parameterName));
     return(argumentValidation);
 }
Example #2
0
 public static IArgumentValidation <string?> DoesNotMatch(
     this IArgumentValidation <string?> argumentValidation,
     [RegexPattern] string pattern,
     RegexOptions options = RegexOptions.None)
 {
     return(argumentValidation.DoesNotMatch(new Regex(pattern, options)));
 }
 public static IArgumentValidation <T> IsFlag <T>(this IArgumentValidation <T> argumentValidation)
     where T : Enum
 {
     return(argumentValidation.Validate(
                value => value.IsFlag(),
                parameterName => new ArgumentException(Resources.EnumConstraints.IsFlagErrorMessage(typeof(T)), parameterName)));
 }
Example #4
0
 public static IArgumentValidation <string?> Matches(this IArgumentValidation <string?> argumentValidation, Regex regularExpression)
 {
     return(argumentValidation.Validate(
                value => value == null || regularExpression.IsMatch(value),
                parameterName => new ArgumentException(
                    Resources.StringConstraints.MatchesErrorMessage(argumentValidation.Value, regularExpression.ToString()),
                    parameterName)));
 }
Example #5
0
 public static IArgumentValidation <T?> IsNotEqualTo <T>(this IArgumentValidation <T?> argumentValidation, T valueToCompare)
     where T : struct, IComparable <T>
 {
     if (argumentValidation.Value != null)
     {
         argumentValidation.IsNotEqualTo(argumentValidation.Value.Value, valueToCompare);
     }
     return(argumentValidation);
 }
 internal static void IsLessThan <T>(this IArgumentValidation argumentValidation, T?value, T?valueToCompare)
     where T : IComparable <T>
 {
     argumentValidation.ValidateComparison(
         value,
         valueToCompare,
         result => result < 0,
         Resources.ComparisonConstraints.IsLessThanErrorMessage(value, valueToCompare));
 }
Example #7
0
 internal static void Validate(
     this IArgumentValidation argumentValidation,
     Func <bool> condition,
     Func <string, ArgumentException> exceptionFactory)
 {
     if (!condition())
     {
         argumentValidation.AddException(exceptionFactory(argumentValidation.Name));
     }
 }
Example #8
0
    public static IArgumentValidation <string?> Matches(
        this IArgumentValidation <string?> argumentValidation,
        [RegexPattern] string pattern,
        RegexOptions options = RegexOptions.None)
    {
        Requires.Argument(pattern, nameof(pattern))
        .IsNotEmpty()
        .Check();

        return(argumentValidation.Matches(new Regex(pattern, options)));
    }
Example #9
0
    internal static IArgumentValidation <T> Validate <T>(
        this IArgumentValidation <T> argumentValidation,
        Func <T?, bool> condition,
        Func <string, ArgumentException> exceptionFactory)
    {
        if (!condition(argumentValidation.Value))
        {
            argumentValidation.AddException(exceptionFactory(argumentValidation.Name));
        }

        return(argumentValidation);
    }
 private static void ValidateComparison <T>(
     this IArgumentValidation argumentValidation,
     T?value,
     T?valueToCompare,
     Func <int?, bool> validateComparisonResult,
     string errorMessage)
     where T : IComparable <T>
 {
     argumentValidation.Validate(
         () => validateComparisonResult(value?.CompareTo(valueToCompare)),
         paramName => new ArgumentException(errorMessage, paramName));
 }
Example #11
0
    public static void Check <T>(this IArgumentValidation <T>?argumentValidation)
    {
        if (argumentValidation == null)
        {
            return;
        }

        var exceptions = argumentValidation.Exceptions;

        switch (exceptions.Count)
        {
        case 0:
            return;

        case 1:
            throw exceptions.Single();

        default:
            throw new AggregateArgumentException(Resources.AggregateArgumentException.DefaultErrorMessage, argumentValidation.Name, exceptions);
        }
    }
Example #12
0
 internal static T?GetValueOrDefault <T>(this IArgumentValidation <T?> argumentValidation)
 {
     return(argumentValidation.Value);
 }
 public static IArgumentValidation <T> DoesNotEqualTo <T>(this IArgumentValidation <T> argumentValidation, T?valueToCompare)
     where T : IEquatable <T>?
 {
     return(argumentValidation.Validate(
 public static IArgumentValidation <ICollection <T?> > IsNotNullOrEmpty <T>(this IArgumentValidation <ICollection <T?> > argumentValidation)
 {
     return(argumentValidation.Validate(
                collection => collection is { Count: > 0 },
 public static IArgumentValidation <ICollection <T?> > IsNotEmpty <T>(this IArgumentValidation <ICollection <T?> > argumentValidation)
 {
     return(argumentValidation.Validate(
                collection => collection == null || collection.Count > 0,
                parameterName => new ArgumentException(Resources.CollectionConstraints.IsNotEmptyErrorMessage, parameterName)));
 }
 public static IArgumentValidation <ICollection <T?> > ContainsSingle <T>(this IArgumentValidation <ICollection <T?> > argumentValidation)
 {
     return(argumentValidation.Validate(
                collection => collection == null || collection.Count == 1,
                parameterName => new ArgumentException(Resources.CollectionConstraints.ContainsSingleErrorMessage, parameterName)));
 }
 public static IArgumentValidation <T?> IsNotEqualTo <T>(this IArgumentValidation <T?> argumentValidation, T valueToCompare)
     where T : IComparable <T?>
 {
     argumentValidation.IsNotEqualTo(argumentValidation.GetValueOrDefault(), valueToCompare);
     return(argumentValidation);
 }
 public static IArgumentValidation <T> IsNotNull <T>(this IArgumentValidation <T> argumentValidation)
 {
     return(argumentValidation.Validate(value => !Equals(null, value), parameterName => new ArgumentNullException(parameterName)));
 }
Example #19
0
 public static IArgumentValidation <string?> IsNotNullOrWhiteSpace(this IArgumentValidation <string?> argumentValidation)
 {
     return(argumentValidation.Validate(
                value => !string.IsNullOrWhiteSpace(value),
                parameterName => new ArgumentException(Resources.StringConstraints.IsNotNullOrWhiteSpaceErrorMessage, parameterName)));
 }
Example #20
0
 public static IArgumentValidation <string?> IsNotEmpty(this IArgumentValidation <string?> argumentValidation)
 {
     return(argumentValidation.Validate(
                value => value == null || value.Length > 0,
                parameterName => new ArgumentException(Resources.StringConstraints.IsNotEmptyErrorMessage, parameterName)));
 }
 public static IArgumentValidation <ICollection <T?> > DoesNotContainNullElement <T>(this IArgumentValidation <ICollection <T?> > argumentValidation)
 {
     return(argumentValidation.Validate(
                collection => collection == null || !collection.Any() || collection.Any(element => !Equals(element, null)),
                parameterName => new ArgumentException(Resources.CollectionConstraints.DoesNotContainNullElementErrorMessage, parameterName)));
 }
 public static IArgumentValidation <Type?> IsInterface(this IArgumentValidation <Type?> argumentValidation)
 {
     return(argumentValidation.Validate(
                type => type?.IsInterface ?? true,
                parameterName => new ArgumentException(Resources.TypeConstraints.IsInterfaceErrorMessage(argumentValidation.Value), parameterName)));
 }
 public static IArgumentValidation <T?> IsLessThan <T>(this IArgumentValidation <T?> argumentValidation, T?valueToCompare)
     where T : IComparable <T>
 {
     argumentValidation.IsLessThan(argumentValidation.GetValueOrDefault(), valueToCompare);
     return(argumentValidation);
 }