/// <summary>
        /// Conducts business rule evalution on a configuration
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns>A collection of evaluation result, each of which describes a failed rule evalution; empty collection if the evaluation of all the rules passes</returns>
        public EvaluationResult Evaluate(Configuration configuration)
        {
            EvaluationResult evaluationResult = new EvaluationResult();

            foreach (IEvaluationRule rule in m_evaluationRules)
            {
                EvaluationResultItem result = rule.Evaluate(configuration);
                if (!result.Passed)
                {
                    evaluationResult.AddResultItem(result);
                }
            }

            return(evaluationResult);
        }
 internal void AddResultItem(EvaluationResultItem item)
 {
     m_evaluationResultItems.Add(item);
 }