/// <summary> /// Validation Rules will be executed if they are defined. /// </summary> /// <param name="rcvData"></param> /// <returns></returns> private bool executeValidationRules(TAdapterOutput rcvData, ICollection <ValidationRuleDescriptor> validatorRules, out ValidatorRulesResult validationResult) { validationResult = new ValidatorRulesResult(); if (validatorRules != null) { // TODO Log. ValidationRulesPipeline pipeline = new ValidationRulesPipeline() { EntityInstance = rcvData, Rules = validatorRules }; validationResult = RulesManager.RunPipeline(pipeline); } if ((validationResult != null && validationResult.HasFailed == false) || validationResult == null) { return(true); } else { return(false); } }
/// <summary> /// Executes the chain of validation rules specified in 'input.Rules'. /// </summary> /// <param name="pipeline">Chain of validation rules.</param> /// <returns>Holds results of execution of all rules. If some of rules have not been executed, they /// are not added in the result list.</returns> internal static ValidatorRulesResult RunPipeline(ValidationRulesPipeline pipeline) { ValidatorRulesResult result = new ValidatorRulesResult(); foreach (var rule in pipeline.Rules) { if (rule.ValidatorRule == null) { rule.ValidatorRule = Factory.GetRule(rule.RuleQName) as ValidatorRule; } if (rule.ValidatorRule.CanExecute(pipeline.EntityInstance)) { bool validationResult = rule.ValidatorRule.Validate(pipeline.EntityInstance); result.Results.Add(rule.Name, validationResult); } } return(result); }