public static void InitRuleEngine(AbstractActionManager actionManager, AbstractCategoryManager categoryManager, AbstractConditionManager conditionManager, AbstractOperatorManager operatorManager) { s_actionManager = actionManager; s_categoryManager = categoryManager; s_conditionManager = conditionManager; s_operatorManager = operatorManager; }
public static void InitRuleEngine(AbstractActionManager actionManager, AbstractCategoryManager categoryManager, AbstractConditionManager conditionManager, AbstractOperatorManager operatorManager) { s_actionManager = actionManager; s_categoryManager = categoryManager; s_conditionManager = conditionManager; s_operatorManager = operatorManager; }
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); } }