public static T NotOutOfRange <T>(this IEnsureArgument ensureArgument, IComparable <T> value, string paramName, IComparable <T> lowerBound = null, IComparable <T> upperBound = null)
        {
            return(ensureArgument.NotOutOfRange(value, paramName, DefaultMessage(), lowerBound, upperBound));

            // Generate a default message to use for the exception, incorporating the boundary parameters.
            string DefaultMessage()
            {
                var message = "Value cannot be";

                if (lowerBound is not null)
                {
                    message += $" less than {lowerBound}";
                }

                if (upperBound is not null)
                {
                    if (lowerBound is not null)
                    {
                        message += " or";
                    }
                    message += $" greater than {upperBound}";
                }
                message += ".";

                return(message);
            }
        }
        public static TEnum NotOutOfRange <TEnum>(this IEnsureArgument _, TEnum value, string paramName) where TEnum : struct, Enum
        {
            if (!Enum.IsDefined(value))
            {
                throw new InvalidEnumArgumentException(paramName, Convert.ToInt32(value), typeof(TEnum));
            }

            return(value);
        }
        public static T NotOutOfRange <T>(this IEnsureArgument _, IComparable <T> value, string paramName, string message, IComparable <T> lowerBound = null, IComparable <T> upperBound = null)
        {
            if ((lowerBound is not null && Comparer <T> .Default.Compare((T)value, (T)lowerBound) < 0) ||
                (upperBound is not null && Comparer <T> .Default.Compare((T)value, (T)upperBound) > 0))
            {
                throw new ArgumentOutOfRangeException(paramName, value, message);
            }

            return((T)value);
        }
        public static string NotNullOrWhiteSpace(this IEnsureArgument ensureArgument, string value, string paramName)
        {
            ensureArgument.NotNullOrEmpty(value, paramName);

            if (value.Trim().Length == 0)
            {
                throw new ArgumentException(message: "Value cannot be whitespace.", paramName);
            }

            return(value);
        }
        public static string NotNullOrEmpty(this IEnsureArgument ensureArgument, string value, string paramName, string message)
        {
            ensureArgument.NotNull(value, paramName, message);

            if (value.Length == 0)
            {
                throw new ArgumentException(message, paramName);
            }

            return(value);
        }
        public static TCollection NotNullOrEmpty <TCollection, T>(this IEnsureArgument ensureArgument, TCollection value, string paramName, string message) where TCollection : IEnumerable <T>
        {
            ensureArgument.NotNull(value, paramName, message);

            if (!value.Any())
            {
                throw new ArgumentException(message, paramName);
            }

            return(value);
        }
        public static Guid?NotNullOrEmpty(this IEnsureArgument ensureArgument, Guid?value, string paramName, string message)
        {
            ensureArgument.NotNull(value, paramName, message);

            if (value == Guid.Empty)
            {
                throw new ArgumentException(message, paramName);
            }

            return(value);
        }
 public static T NotNull <T>(this IEnsureArgument ensureArgument, T value, string paramName)
 {
     return(ensureArgument.NotNull(value, paramName, message: "Value cannot be null."));
 }
예제 #9
0
 public static TCollection NotNullOrEmpty <TCollection, T>(this IEnsureArgument ensureArgument, Expression <Func <TCollection> > argument, string message) where TCollection : IEnumerable <T>
 {
     return(ensureArgument.NotNullOrEmpty <TCollection, T>(argument.GetValue(), argument.GetName(), message));
 }
예제 #10
0
 public static Guid?NotNullOrEmpty(this IEnsureArgument ensureArgument, Expression <Func <Guid?> > argument, string message)
 {
     return(ensureArgument.NotNullOrEmpty(argument.GetValue(), argument.GetName(), message));
 }
예제 #11
0
 public static string NotNullOrEmpty(this IEnsureArgument ensureArgument, Expression <Func <string> > argument)
 {
     return(ensureArgument.NotNullOrEmpty(argument.GetValue(), argument.GetName()));
 }
예제 #12
0
 public static T NotNull <T>(this IEnsureArgument ensureArgument, Expression <Func <T> > argument, string message)
 {
     return(ensureArgument.NotNull(argument.GetValue(), argument.GetName(), message));
 }
예제 #13
0
 public static TEnum NotOutOfRange <TEnum>(this IEnsureArgument ensureArgument, Expression <Func <TEnum> > argument) where TEnum : struct, Enum
 {
     return(ensureArgument.NotOutOfRange(argument.GetValue(), argument.GetName()));
 }
예제 #14
0
 public static T NotOutOfRange <T>(this IEnsureArgument ensureArgument, Expression <Func <IComparable <T> > > argument, string message, IComparable <T> lowerBound = null, IComparable <T> upperBound = null)
 {
     return(ensureArgument.NotOutOfRange(argument.GetValue(), argument.GetName(), message, lowerBound, upperBound));
 }
예제 #15
0
 public static string NotNullOrWhiteSpace(this IEnsureArgument ensureArgument, Expression <Func <string> > argument, string message)
 {
     return(ensureArgument.NotNullOrWhiteSpace(argument.GetValue(), argument.GetName(), message));
 }
 public static T NotNull <T>(this IEnsureArgument _, T value, string paramName, string message)
 {
     return(value ?? throw new ArgumentNullException(paramName, message));
 }
 public static IEnumerable <T> NotNullOrEmpty <T>(this IEnsureArgument ensureArgument, IEnumerable <T> value, string paramName, string message)
 {
     return(ensureArgument.NotNullOrEmpty <IEnumerable <T>, T>(value, paramName, message));
 }
예제 #18
0
 public static IEnumerable <T> NotNullOrEmpty <T>(this IEnsureArgument ensureArgument, Expression <Func <IEnumerable <T> > > argument, string message)
 {
     return(ensureArgument.NotNullOrEmpty(argument.GetValue(), argument.GetName(), message));
 }