示例#1
0
        /// <summary>
        /// Validate
        /// </summary>
        public void Validate()
        {
            var tempList = ValidateStrategyList.Select(strategy => strategy.Validate(Instance)).ToList();

            ResultCollection = new ValidationResultCollection(tempList);
            Handle?.Invoke(ResultCollection.Handle());
        }
示例#2
0
 /// <summary>
 /// Add strategy
 /// </summary>
 /// <param name="strategy"></param>
 /// <exception cref="ArgumentNullException"></exception>
 public void AddStrategy(IValidateStrategy <TObject> strategy)
 {
     if (strategy == null)
     {
         throw new ArgumentNullException(nameof(strategy));
     }
     if (ValidateStrategyList.Any(x => x.StrategyName == strategy.StrategyName))
     {
         return;
     }
     ValidateStrategyList.Add(strategy);
 }
示例#3
0
        /// <summary>
        /// 验证
        /// </summary>
        /// <param name="appendAction">追加操作</param>
        public void Validate(Action <ValidationResultCollection> appendAction = null)
        {
            var result = DataAnnotationValidation.Validate(Instance);

            ResultCollection = new ValidationResultCollection(result);
            appendAction?.Invoke(ResultCollection);
            var tempList = ValidateStrategyList.Select(strategy => strategy.Validate(Instance)).ToList();

            if (tempList.Any())
            {
                ResultCollection.AddRange(tempList);
            }
            if (ResultCollection.IsValid)
            {
                return;
            }
            if (Handle == null)
            {
                Handle = op => op.HandleAll(BingConfig.Current.ValidationHandler);// 如果没有处理器操作,则使用默认操作
            }
            Handle.Invoke(ResultCollection.Handle());
        }