Пример #1
0
        public static ValidationResult validate(Lib.FieldInfo f, ValidationTypeEnum validationType, object value)
        {
            ValidationResult           vr  = new ValidationResult();
            List <IValidationFunction> tmp = null;

            switch (validationType)
            {
            case ValidationTypeEnum.business:
                tmp = f.validationInfo.businessValidationRuleFullList;
                break;

            case ValidationTypeEnum.leave:
                tmp = f.validationInfo.leaveValidationRuleFullList;
                break;

            case ValidationTypeEnum.symbol:
                tmp = f.validationInfo.symbolValidationRuleFullList;
                break;
            }
            vr.validatedValue    = value;
            vr.validationSuccess = true;

            foreach (IValidationFunction ivf in tmp)
            {
                vr = ivf.validate(f, vr.validatedValue);
                if (vr.validationSuccess == false)
                {
                    return(vr); //если какая -то из валидационных функций не пропустит, то выход
                }
            }
            return(vr);
        }
Пример #2
0
        private void _Then(string message, string key, ValidationTypeEnum validationType = ValidationTypeEnum.Error)
        {
            var failed = true;

            foreach (var rule in this._rules)
            {
                try
                {
                    failed = failed & rule(this._object);
                    if (!failed)
                    {
                        break;
                    }
                }
                catch (Exception e)
                {
                    _validation.Add(BuildValidationMessage(message, key, ValidationTypeEnum.Exception));
                    failed = false;
                    break;
                }
            }

            if (failed)
            {
                _validation.Add(BuildValidationMessage(message, key, validationType));
            }

            // reset the rules for next validation rule
            _rules.Clear();
        }
Пример #3
0
        /// <summary>
        /// 验证
        /// </summary>
        /// <param name="validationType"></param>
        /// <returns></returns>
        public static IAttributeValidation <TEntity> GetValication(ValidationTypeEnum validationType)
        {
            switch (validationType)
            {
            case ValidationTypeEnum.Required:
                return(new RequiredAttributeValidation <TEntity>());

            case ValidationTypeEnum.Length:
                return(new LengthAttributeValidation <TEntity>());

            case ValidationTypeEnum.Range:
                return(new RangeAttributeValidation <TEntity>());

            case ValidationTypeEnum.Format:
                return(new FormatAttributeValidation <TEntity>());
            }
            return(null);
        }
Пример #4
0
 public AsyncValidationAttribute(ValidationTypeEnum validationType)
 {
     ValidationType = validationType;
 }
Пример #5
0
 public virtual IValidationResult BuildValidationMessage(string message, string key, ValidationTypeEnum validationType)
 {
     return(new ValidationResult {
         Message = message, Key = key, ValidationType = validationType
     });
 }
Пример #6
0
 public Validation(ValidationTypeEnum validationType, string target, string message)
 {
     Error = new Error(validationType, target, message);
 }