コード例 #1
0
        internal static bool InRange <T>(Argument <T> arg, T min, T max) where T : IComparable <T>
        {
            InvalidMethodArgumentThrower.ForRange.IfValueIsNull(max, nameof(max));
            InvalidMethodArgumentThrower.ForRange.IfValueIsNull(min, nameof(min));
            InvalidMethodArgumentThrower.IfNotRange(min, max);
            InvalidMethodArgumentThrower.ForRange.IfArgumentIsNull(arg, min, max);

            return(arg.Value.InRange(min, max));
        }
コード例 #2
0
        /// <summary>
        /// Throws <see cref="ArgumentException"/> if length is not in range from <paramref name="min"/> to <paramref name="max"/>
        /// </summary>
        /// <exception cref="ArgumentException">Throws if length is not in range from <paramref name="min"/> to <paramref name="max"/></exception>
        /// <exception cref="ArgValidationException">Throws if argument is <c>null</c> or <paramref name="min"/> - <paramref name="max"/> is not range</exception>
        public static Argument <string> LengthInRange(this Argument <string> arg, int min, int max)
        {
            if (arg.ValidationIsDisabled())
            {
                return(arg);
            }

            InvalidMethodArgumentThrower.IfArgumentValueIsNull(arg, methodName: nameof(LengthInRange));
            InvalidMethodArgumentThrower.IfNotRange(min, max);

            if (!arg.Value.Length.InRange(min, max))
            {
                ValidationErrorExceptionThrower.ArgumentException(arg,
                                                                  $"Argument '{arg.Name}' must be length in range {min} - {max}. Current length: {GetLengthValueForMessage(arg.Value)}");
            }


            return(arg);
        }