/// <summary> /// Executes the given list of <see cref="AbstractRule"/> /// </summary> /// <param name="rulesToExecute"></param> /// <returns></returns> public RuleResult ExecuteRulesList(List <AbstractRule> rulesToExecute) { var consolidatedRuleResult = RuleResult.Default(); foreach (var rule in rulesToExecute) { var result = rule.Process(); if (!result.IsPassed) { consolidatedRuleResult.ErrorMessages.AddRange(result.ErrorMessages); } } return(consolidatedRuleResult); }
internal RuleResult Process() { var result = RuleResult.Default(); var skipped = BeforeExecute(); var executedContext = new RuleExecutedContext(false, RuleResult.Default()); if (skipped) { executedContext = new RuleExecutedContext(false, RuleResult.Default()); try { result = Execute(); } catch (Exception e) { executedContext = new RuleExecutedContext(false, RuleResult.Default()); executedContext.SetException(e); } } AfterExecute(executedContext); return(result); }