public NumberRangeValidator(PluginValidatorRange <double> range)
 {
     doubleRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <decimal> range)
 {
     decimalRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <long> range)
 {
     longRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <float> range)
 {
     floatRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <int> range)
 {
     intRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <short> range)
 {
     shortRange = range;
 }
 public NumberRangeValidator(PluginValidatorRange <byte> range)
 {
     byteRange = range;
 }
        private void validateRange <T>(string name, object value, IList <ValidationError> errors, Func <T> parse, PluginValidatorRange <T> range, Func <T, T, bool> startOutOfRange, Func <T, T, bool> endOutOfRange) where T : struct
        {
            if (range != null)
            {
                T val = parse();

                if (range.Start.HasValue && range.End.HasValue)
                {
                    if (startOutOfRange(val, range.Start.Value) || endOutOfRange(val, range.End.Value))
                    {
                        errors.Add(new ValidationError(name, value, string.Format("Plugins.Errors.NumberRangeValidator.Range.{0}", typeof(T).Name), "en", "{0} must be between {1} and {2}", name, range.Start.Value.ToString(), range.End.Value.ToString()));
                    }
                }
                else if (range.Start.HasValue)
                {
                    if (startOutOfRange(val, range.Start.Value))
                    {
                        errors.Add(new ValidationError(name, value, string.Format("Plugins.Errors.NumberRangeValidator.Start.{0}", typeof(T).Name), "en", "{0} must be greater than or equal to {1}", name, range.Start.Value.ToString()));
                    }
                }
                else if (range.End.HasValue)
                {
                    if (endOutOfRange(val, range.End.Value))
                    {
                        errors.Add(new ValidationError(name, value, string.Format("Plugins.Errors.NumberRangeValidator.End.{0}", typeof(T).Name), "en", "{0} must be less than or equal to {1}", name, range.End.Value.ToString()));
                    }
                }
            }
        }
 public DateRangeValidator(PluginValidatorRange <DateTime> range)
 {
     this.range = range;
 }