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); } } }
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); } }
public override void AddValidation(ClientModelValidationContext context) { var regexVal = (RegularExpressionValidator)Validator; // Ensure the pattern starts and ends with '/' context.AddValidationRule("regex", $"/{regexVal.Expression.Trim('/')}/"); }
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"); } }
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"); }
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()); }
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); }
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('/')}/"); }