Example #1
0
 public static void InitRuleEngine(AbstractActionManager actionManager,
                                   AbstractCategoryManager categoryManager,
                                   AbstractConditionManager conditionManager,
                                   AbstractOperatorManager operatorManager)
 {
     s_actionManager    = actionManager;
     s_categoryManager  = categoryManager;
     s_conditionManager = conditionManager;
     s_operatorManager  = operatorManager;
 }
Example #2
0
 public static void InitRuleEngine(AbstractActionManager actionManager,
     AbstractCategoryManager categoryManager,
     AbstractConditionManager conditionManager,
     AbstractOperatorManager operatorManager)
 {
     s_actionManager = actionManager;
     s_categoryManager = categoryManager;
     s_conditionManager = conditionManager;
     s_operatorManager = operatorManager;
 }
Example #3
0
        private ICondition ProcessConditionNode(XmlNode conditionNode)
        {
            AbstractConditionManager conditionManager = RuleEngine.GetConditionManager();
            ICondition condition = conditionManager.CreateCondition(conditionNode.Name);

            if (condition is AbstractCompositeCondition)
            {
                if (condition is AbstractMultipleCondition)
                {
                    AbstractMultipleCondition multipleCondition =
                        condition as AbstractMultipleCondition;
                    foreach (XmlNode childConditionNode in conditionNode.ChildNodes)
                    {
                        ICondition childCondition = ProcessConditionNode(childConditionNode);
                        multipleCondition.AppendCondition(childCondition);
                    }
                    return(multipleCondition);
                }
                else
                {
                    AbstractSingleCondition singleCondition =
                        condition as AbstractSingleCondition;
                    ICondition childCondition = ProcessConditionNode(conditionNode.ChildNodes[0]);
                    singleCondition.AppendCondition(childCondition);
                    return(singleCondition);
                }
            }
            else
            {
                AbstractAtomicCondition atomicCondition = condition as AbstractAtomicCondition;
                string operatorName = conditionNode.Attributes[RuleFileConstants.Operator].InnerText;
                atomicCondition.Operator = RuleEngine.GetOperatorManager().GetOperator(operatorName);
                atomicCondition.Value    =
                    conditionNode.Attributes[RuleFileConstants.Value].InnerText;
                return(atomicCondition);
            }
        }