public static IValidator Range(double minValue, double maxValue, string errorMessage = null)
        {
            errorMessage = String.Format(CultureInfo.CurrentCulture, DefaultIfEmpty(errorMessage, WebPageResources.ValidationDefault_FloatRange), minValue, maxValue);
            var clientAttributes = new ModelClientValidationRangeRule(errorMessage, minValue, maxValue);

            return(new ValidationAttributeAdapter(new RangeAttribute(minValue, maxValue), errorMessage, clientAttributes));
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata,
                                                                                ControllerContext context)
        {
            var modelClientValidationRule = new ModelClientValidationRangeRule(ErrorMessage, this.Minimum, this.Maximum);

            return(new List <ModelClientValidationRangeRule> {
                modelClientValidationRule
            });
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            this.TrySetErrorMessage(ErrorMessageDictionaryKey);

            var error = FormatErrorMessage(metadata.DisplayName);
            var rule  = new ModelClientValidationRangeRule(error, Minimum, Maximum);

            yield return(rule);
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ErrorMessage = UmbracoValidationHelper.GetDictionaryItem(_errorMessageDictionaryKey, _defaultText);

            var error = UmbracoValidationHelper.FormatErrorMessage(metadata.DisplayName, _errorMessageDictionaryKey, _defaultText);
            var rule  = new ModelClientValidationRangeRule(error, Minimum, Maximum);

            yield return(rule);
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var rule = new ModelClientValidationRangeRule(this.ErrorMessage, this.Minimum, this.Maximum)
            {
                ValidationType = "range"
            };

            yield return(rule);
        }
            public override IEnumerable <ModelClientValidationRule> GetClientValidationRules()
            {
                ModelClientValidationRule rule = null;
                string errorMessage;
                long   min = long.MinValue, max = long.MaxValue;


                if (_metadata.ContainerType != null)
                {
                    //add default range for integral number
                    if (IsIntegralType(_metadata.ModelType)
                        &&
                        !Attribute.IsDefined(_metadata.ContainerType.GetProperty(_metadata.PropertyName),
                                             typeof(RangeAttribute), true))
                    {
                        if (_metadata.ModelType == typeof(long))
                        {
                            min = long.MinValue;
                            max = long.MaxValue;
                        }
                        else if (_metadata.ModelType == typeof(int))
                        {
                            min = int.MinValue;
                            max = int.MaxValue;
                        }
                        else if (_metadata.ModelType == typeof(short))
                        {
                            min = short.MinValue;
                            max = short.MaxValue;
                        }

                        errorMessage = MakeErrorString(ValidationMessages.NumericModelValidator_RangeError,
                                                       Metadata.GetDisplayName(), min, max);
                        rule = new ModelClientValidationRangeRule(errorMessage, min, max);
                    }


                    //add default edit format for decimal
                    if (_metadata.ModelType == typeof(decimal) || _metadata.ModelType == typeof(decimal?))
                    {
                        var precision = DefaultDecimalPrecision;
                        var scale     = DefaultDecimalScale;

                        var attr =
                            Attribute.GetCustomAttribute(
                                _metadata.ContainerType.GetProperty(_metadata.PropertyName),
                                typeof(DecimalFormatAttribute), true) as DecimalFormatAttribute;
                        if (attr != null)
                        {
                            precision = attr.Precision;
                            scale     = attr.Scale;
                        }

                        // var rex = "^(\\d{1," + (precision - scale) + "})(\\.\\d{1," + scale + "})?$";
                        var rex = "^(\\d{1," + (precision - scale) + "})";
                        if (scale > 0)
                        {
                            rex = rex + "(\\.\\d{1," + scale + "})?";
                        }
                        rex          = rex + "$";
                        errorMessage = MakeErrorString(ValidationMessages.NumericModelValidator_DecimalFormatError,
                                                       Metadata.GetDisplayName(), precision - scale, scale);
                        rule = new ModelClientValidationRegexRule(errorMessage, rex);
                    }
                }
                var rule0 = new ModelClientValidationRule()
                {
                    ValidationType = "number",
                    ErrorMessage   =
                        MakeErrorString(ValidationMessages.NumericModelValidator_FormatError,
                                        Metadata.GetDisplayName(), 0, 0)
                };

                if (rule == null)
                {
                    return new ModelClientValidationRule[] { rule0 }
                }
                ;
                else
                {
                    return new ModelClientValidationRule[] { rule0, rule }
                };
            }
        /// <summary>Returns the ModelClientValidationRangeRule as the client validation rules</summary>
        /// <param name="metadata">The metadata for the model.</param>
        /// <param name="context">The controller context for the model.</param>
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var rule = new ModelClientValidationRangeRule(ErrorMessage, Minimum, Maximum);

            yield return(rule);
        }