Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }