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)); }
/// <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); }