private List <string> ValidateDateField <T>(FieldValidationRule rule, T val) { var messages = new List <string>(); if (rule.Required && val is null) { messages.Add($"{rule.FieldName} field is required."); return(messages); } if (!rule.Required && val is null) { return(messages); } DateTime value = Convert.ToDateTime(val); if (rule.MinDate != null && rule.MaxDate != null) { if (value < rule.MinDate || value > rule.MaxDate) { messages.Add($"The length of {rule.FieldName} must be between {rule.MinDate} and {rule.MaxDate}."); } } return(messages); }
private static bool IsValid(this FieldValidationRule validationRule, string value) { switch (validationRule.Type) { case FieldValidationRuleType.Required: { return(!string.IsNullOrWhiteSpace(value)); } case FieldValidationRuleType.Regex: { return(string.IsNullOrWhiteSpace(value) || new Regex(validationRule.Value).IsMatch(value)); } case FieldValidationRuleType.Length: { return(value.Length == Convert.ToInt32(validationRule.Value)); } case FieldValidationRuleType.MinLength: { return(value.Length >= Convert.ToInt32(validationRule.Value)); } case FieldValidationRuleType.MaxLength: { return(value.Length <= Convert.ToInt32(validationRule.Value)); } default: { throw new ArgumentOutOfRangeException(); } } }
private List <string> ValidateStringField <T>(FieldValidationRule rule, T val) { var messages = new List <string>(); if (rule.Required && val is null) { messages.Add($"The {rule.FieldName} field is required."); return(messages); } if (!rule.Required && val is null) { return(messages); } string value = Convert.ToString(val); if (rule.MinLength != null && rule.MaxLength != null) { if (value.Length < rule.MinLength || value.Length > rule.MaxLength) { messages.Add($"The length of {rule.FieldName} field must be between {rule.MinLength} and {rule.MaxLength}."); } } if (rule.Regex.IsNotEmpty()) { if (!Regex.IsMatch(value, rule.Regex)) { messages.Add($"{rule.FieldName} field must match the regular expression [{rule.Regex}]."); } } //ToDo: look up validation return(messages); }
public IEnumerable <System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomFieldDefinition field, FieldValidationRule rule) { yield return(new ModelClientValidationRequiredRule(rule.ErrorMessage)); }
private static IRuleBuilderOptions <T, string> Custom <T>(this IRuleBuilder <T, string> ruleBuilder, FieldValidationRule validationRule) { switch (validationRule.Type) { case FieldValidationRuleType.Required: { return(ruleBuilder.Must(value => !string.IsNullOrWhiteSpace(value))); } case FieldValidationRuleType.Regex: { return(ruleBuilder.Matches(validationRule.Value)); } case FieldValidationRuleType.Length: { return(ruleBuilder.Length(Convert.ToInt32(validationRule.Value))); } case FieldValidationRuleType.MinLength: { return(ruleBuilder.MinimumLength(Convert.ToInt32(validationRule.Value))); } case FieldValidationRuleType.MaxLength: { return(ruleBuilder.MaximumLength(Convert.ToInt32(validationRule.Value))); } default: { throw new ArgumentOutOfRangeException(); } } }
public IEnumerable<System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomField field, FieldValidationRule rule) { yield return new ModelClientValidationRequiredRule(rule.ErrorMessage); }
public IEnumerable <System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomFieldDefinition field, FieldValidationRule rule) { yield return(new ModelClientValidationRule { ValidationType = "uniquefield", ErrorMessage = rule.ErrorMessage }); }