예제 #1
0
파일: DomainBase.cs 프로젝트: hzl091/MyFX
        /// <summary>
        /// 执行验证操作
        /// </summary>
        /// <param name="validators">验证器集合</param>
        /// <param name="throwError">是否抛出错误</param>
        public ValidateResults Validate(IEnumerable <IValidator> validators, bool throwError = true)
        {
            ValidateResults rs = new ValidateResults();

            if (validators == null)
            {
                throw new ArgumentNullException("validators");
            }

            foreach (var validator in validators)
            {
                rs.AddRange(validator.DoValidate(this, throwError));
            }
            return(rs);
        }
예제 #2
0
        public virtual ValidateResults DoValidate(object instance, bool throwError = true)
        {
            SetValidateRules();
            var rs = this.Validate((TEntity)instance);

            ValidateResults newRs = new ValidateResults();

            if (!rs.IsValid)
            {
                if (throwError)
                {
                    throw new ValidationException(rs.Errors.First().ErrorMessage);
                }
                newRs.AddRange(rs.Errors.Select(item => new ValidateResult {
                    Key = item.PropertyName, ErrorMessage = item.ErrorMessage
                }));
            }
            this.AddCustomerValidate(newRs); //钩子,自定义验证时重写该方法
            IsValid = newRs.IsValid;
            return(newRs);
        }
예제 #3
0
 /// <summary>
 /// 自定义验证
 /// </summary>
 /// <param name="validateResults"></param>
 protected virtual void AddCustomerValidate(ValidateResults validateResults)
 {
 }
 private static void ValidateStrings(IEnumerable<string> list, CharTypesAllowed allowed)
 {
     var results = new ValidateResults(allowed);
     foreach (var ch in list.SelectMany(str => str))
     {
         results.AddChar(ch);
     }
     results.Validate();
 }
 private static void ValidateString(string str, CharTypesAllowed allowed)
 {
     var results = new ValidateResults(allowed);
     foreach (char ch in str)
     {
         results.AddChar(ch);
     }
     results.Validate();
 }
 private static void ValidateChars(IEnumerable<char> list, CharTypesAllowed allowed)
 {
     var results = new ValidateResults(allowed);
     foreach (var ch in list)
     {
         results.AddChar(ch);
     }
     results.Validate();
 }