Example #1
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            var name = metadata.GetDisplayName();
            var rule = new ModelClientValidationRegexRule(FormatErrorMessage(name), Pattern);

            yield return(rule);
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            string errorMessage = ResourceHelper.GetValue(this.ErrorMessage);
            var    rule         = new ModelClientValidationRegexRule(errorMessage, Pattern);

            yield return(rule);
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(
            ModelMetadata metadata,
            ControllerContext context)
        {
            var rule = new ModelClientValidationRegexRule(ErrorMessageString, Pattern);

            return(new[] { rule });
        }
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            // Using the existing rule class. This makes it trivial to create the HTML
            // attributes required for the standard "unobtrusive" jQuery validation.
            var rule = new ModelClientValidationRegexRule(FormatErrorMessage(metadata.GetDisplayName()), regexDef);

            return(new[] { rule });
        }
Example #5
0
        public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata,
                                                                                ControllerContext context)
        {
            var validationRule = new ModelClientValidationRegexRule(ErrorMessage, _pattern)
            {
                ValidationType = "emaildatavalidation",
                ErrorMessage   = ErrorMessage
            };

            yield return(validationRule);
        }
        public static IValidator Regex(string pattern, string errorMessage = null)
        {
            if (String.IsNullOrEmpty(pattern))
            {
                throw new ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, "pattern");
            }

            errorMessage = DefaultIfEmpty(errorMessage, WebPageResources.ValidationDefault_Regex);
            var clientAttributes = new ModelClientValidationRegexRule(errorMessage, pattern);

            return(new ValidationAttributeAdapter(new RegularExpressionAttribute(pattern), errorMessage, clientAttributes));
        }
            public override IEnumerable <ModelClientValidationRule> GetClientValidationRules()
            {
                ModelClientValidationRule rule = null;
                string errorMessage;

                if (_metadata.ContainerType != null)
                {
                    //add default edit format for decimal string
                    var attr =
                        Attribute.GetCustomAttribute(
                            _metadata.ContainerType.GetProperty(_metadata.PropertyName),
                            typeof(DecimalFormatAttribute), true) as DecimalFormatAttribute;

                    if (attr != null)
                    {
                        var precision = attr.Precision;
                        var scale     = attr.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);
                    }
                }

                if (rule == null)
                {
                    return new ModelClientValidationRule[] {}
                }
                ;
                else
                {
                    return new ModelClientValidationRule[] { rule }
                };
            }
        /// <summary>
        /// Retrieves a collection of client validation rules.
        /// </summary>
        /// <returns>A collection of client validation rules.</returns>
        public override IEnumerable <ModelClientValidationRule> GetClientValidationRules()
        {
            var rule = new ModelClientValidationRegexRule(this._errorMessage, this._pattern);

            return(new[] { 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 }
                };
            }