Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
            }
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 public IEnumerable <System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomFieldDefinition field, FieldValidationRule rule)
 {
     yield return(new ModelClientValidationRequiredRule(rule.ErrorMessage));
 }
Beispiel #5
0
        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();
            }
            }
        }
Beispiel #6
0
 public IEnumerable<System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomField field, FieldValidationRule rule)
 {
     yield return new ModelClientValidationRequiredRule(rule.ErrorMessage);
 }
Beispiel #7
0
 public IEnumerable <System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(CustomFieldDefinition field, FieldValidationRule rule)
 {
     yield return(new ModelClientValidationRule
     {
         ValidationType = "uniquefield",
         ErrorMessage = rule.ErrorMessage
     });
 }