Exemple #1
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            // This will trigger the conversion of Attribute.Minimum and Attribute.Maximum.
            // This is needed, because the attribute is stateful and will convert from a string like
            // "100m" to the decimal value 100.
            var max = Convert.ToString(Attribute.Maximum, CultureInfo.CurrentUICulture);
            var min = Convert.ToString(Attribute.Minimum, CultureInfo.CurrentUICulture);

            if (context.ModelMetadata.UnderlyingOrModelType == typeof(DateTime) || (Nullable.GetUnderlyingType(Attribute.OperandType) ?? Attribute.OperandType) == typeof(DateTime))
            {
                var dateFormat = _options.DateFormatProvider(context.ActionContext.HttpContext);

                if (!DateTime.TryParse(min, out var minDate))
                {
                    throw new ArgumentException(nameof(Attribute.Minimum));
                }

                if (!DateTime.TryParse(max, out var maxDate))
                {
                    throw new ArgumentException(nameof(Attribute.Maximum));
                }

                context
                .AddValidationRule("date_format", $"'{dateFormat}'")
                .AddValidationRule("date_between", $"['{minDate.ToString(dateFormat)}','{maxDate.ToString(dateFormat)}',true]");
            }
            else
            {
                context
                .AddValidationRule("max_value", max)
                .AddValidationRule("min_value", min);
            }
        }
        public override void AddValidation(ClientModelValidationContext context)
        {
            var rangeValidator = (InclusiveBetweenValidator)Validator;

            if (rangeValidator.To != null && rangeValidator.From != null)
            {
                var from = rangeValidator.From.ToString();
                var to   = rangeValidator.To.ToString();

                if (context.ModelMetadata.UnderlyingOrModelType == typeof(DateTime))
                {
                    var dateFormat = _dateFormatProvider(context.ActionContext.HttpContext);

                    if (!DateTime.TryParse(from, out var minDate))
                    {
                        throw new ArgumentException(nameof(rangeValidator.From));
                    }

                    if (!DateTime.TryParse(to, out var maxDate))
                    {
                        throw new ArgumentException(nameof(rangeValidator.To));
                    }

                    context
                    .AddValidationRule("date_format", $"'{dateFormat}'")
                    .AddValidationRule("date_between", $"['{minDate.ToString(dateFormat)}','{maxDate.ToString(dateFormat)}',true]");
                }
                else
                {
                    context
                    .AddValidationRule("min_value", from)
                    .AddValidationRule("max_value", to);
                }
            }
        }
Exemple #3
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            var rangeValidator = (GreaterThanOrEqualValidator)Validator;

            if (rangeValidator.ValueToCompare != null)
            {
                if (context.ModelMetadata.UnderlyingOrModelType == typeof(DateTime))
                {
                    var dateFormat = _dateFormatProvider(context.ActionContext.HttpContext);

                    if (!DateTime.TryParse(rangeValidator.ValueToCompare.ToString(), out var minDate))
                    {
                        throw new ArgumentException(nameof(rangeValidator.ValueToCompare));
                    }

                    context
                    .AddValidationRule("date_format", $"'{dateFormat}'")
                    .AddValidationRule("date_between", $"['{minDate.ToString(dateFormat)}','{DateTime.MaxValue.ToString(dateFormat)}',true]");
                }
                else
                {
                    context.AddValidationRule("min_value", rangeValidator.ValueToCompare);
                }
            }
        }
        public override void AddValidation(ClientModelValidationContext context)
        {
            if (Attribute.MaximumLength != int.MaxValue)
            {
                context.AddValidationRule("max", Attribute.MaximumLength);
            }

            if (Attribute.MinimumLength != 0)
            {
                context.AddValidationRule("min", Attribute.MinimumLength);
            }
        }
Exemple #5
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            var regexVal = (RegularExpressionValidator)Validator;

            // Ensure the pattern starts and ends with '/'
            context.AddValidationRule("regex", $"/{regexVal.Expression.Trim('/')}/");
        }
Exemple #6
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            var lengthVal = (LengthValidator)Validator;

            context
            .AddValidationRule("max", lengthVal.Max.ToString())
            .AddValidationRule("min", lengthVal.Min.ToString());
        }
        public override void AddValidation(ClientModelValidationContext context)
        {
            context.AddValidationRule("required", "true");

            // Add attribute to fire validation rules on both input and blur
            // so that the field becomes invalid when the user enters then leaves
            // without making any changes - immitate the jQuery validaiton behaviour.
            if (!context.Attributes.ContainsKey("data-vv-validate-on"))
            {
                context.Attributes.Add("data-vv-validate-on", "input|blur");
            }
        }
Exemple #8
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            if (!string.IsNullOrEmpty(Attribute.Extensions))
            {
                // Convert to Vee-Validate format, i.e. "jpg,gif" to 'jpg','gif'
                var extensions = Attribute.Extensions.Replace('|', ',')
                                 .Split(',')
                                 .Select(x => $"'{x}'");

                context.AddValidationRule("ext", $"[{string.Join(",", extensions)}]");
            }
        }
        public override void AddValidation(ClientModelValidationContext context)
        {
            var equalValidator = (EqualValidator)Validator;

            // Only implementing for equals comparison.
            if (equalValidator.Comparison != Comparison.Equal)
            {
                return;
            }

            if (equalValidator.MemberToCompare != null)
            {
                // If propertyToCompare is not null then we're comparing to another property.
                // If propertyToCompare is null then we're either comparing against a literal value, a field or a method call.
                // We only care about property comparisons in this case.
                context.AddValidationRule("confirmed", $"'{equalValidator.MemberToCompare.Name}'");
            }
            else if (equalValidator.ValueToCompare != null)
            {
                // Not implemented
            }
        }
 public override void AddValidation(ClientModelValidationContext context)
 {
     context.AddValidationRule("email", "true");
 }
Exemple #11
0
 public override void AddValidation(ClientModelValidationContext context)
 {
     context.AddValidationRule("confirmed", $"'{Attribute.OtherProperty}'");
 }
        public override void AddValidation(ClientModelValidationContext context)
        {
            var minLengthValidator = (MinimumLengthValidator)Validator;

            context.AddValidationRule("min", minLengthValidator.Min.ToString());
        }
Exemple #13
0
        public override void AddValidation(ClientModelValidationContext context)
        {
            var maxLengthValidator = (MaximumLengthValidator)Validator;

            context.AddValidationRule("max", maxLengthValidator.Max.ToString());
        }
 public override void AddValidation(ClientModelValidationContext context)
 {
     context.AddValidationRule("credit_card", "true");
 }
 public override void AddValidation(ClientModelValidationContext context)
 {
     context.AddValidationRule("max", Attribute.Length);
 }
Exemple #16
0
 public override void AddValidation(ClientModelValidationContext context)
 {
     context.AddValidationRule("url", "[true,true]");
 }
 public override void AddValidation(ClientModelValidationContext context)
 {
     // Ensure the pattern starts and ends with '/'
     context.AddValidationRule("regex", $"/{Attribute.Pattern.Trim('/')}/");
 }