/// <summary> /// Validate /// </summary> public void Validate() { var tempList = ValidateStrategyList.Select(strategy => strategy.Validate(Instance)).ToList(); ResultCollection = new ValidationResultCollection(tempList); Handle?.Invoke(ResultCollection.Handle()); }
/// <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); }
/// <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()); }