public void Setup() { _called = null; var configurator = new RuntimeConfiguratorImpl(); var engine = configurator.RulesEngine; PropertyNode<A, decimal> propertyNode = configurator.Property<A, decimal>(x => x.Amount); ConditionNode<Token<A, decimal>> conditionNode = configurator.Condition<A, decimal>(x => x > 10000.0m); propertyNode.AddActivation(conditionNode); AlphaNode<Token<A, decimal>> edgeAlpha = configurator.Alpha<A, decimal>(); conditionNode.AddActivation(edgeAlpha); AlphaNode<A> alphaNode = configurator.GetAlphaNode<A>(); alphaNode.AddActivation(propertyNode); JoinNode<A> joinNode = configurator.Join(alphaNode); DelegateProductionNode<A> productionNode = configurator.Delegate<A>((session,x) => _called = x); joinNode.AddActivation(productionNode); LeftJoinNode<A, decimal> leftNode = configurator.Left<A, decimal>(alphaNode); leftNode.AddActivation(joinNode); edgeAlpha.AddActivation(leftNode); using (StatefulSession session = engine.CreateSession()) { session.Add(new A(10001.0m)); session.Run(); } }
public void Setup() { _called = null; var configurator = new RuntimeConfiguratorImpl(); var productionNode = new DelegateProductionNode <A>(16, (session, x) => _called = x); var constantNode = new ConstantNode <A>(42); var joinNode = configurator.CreateNode(id => new JoinNode <A>(id, constantNode)); var constantNode2 = new ConstantNode <A>(27); var joinNode2 = configurator.CreateNode(id => new JoinNode <A>(id, constantNode2)); joinNode2.AddActivation(productionNode); joinNode.AddActivation(joinNode2); var engine = new OdoyuleRulesEngine(configurator); AlphaNode <A> alphaNode = engine.GetAlphaNode <A>(); alphaNode.AddActivation(joinNode); using (StatefulSession session = engine.CreateSession()) { session.Add(new A()); session.Run(); } }
public void Setup() { _called = null; var configurator = new RuntimeConfiguratorImpl(); var engine = configurator.RulesEngine; PropertyNode <A, decimal> propertyNode = configurator.Property <A, decimal>(x => x.Amount); ConditionNode <Token <A, decimal> > conditionNode = configurator.Condition <A, decimal>(x => x > 10000.0m); propertyNode.AddActivation(conditionNode); AlphaNode <Token <A, decimal> > edgeAlpha = configurator.Alpha <A, decimal>(); conditionNode.AddActivation(edgeAlpha); AlphaNode <A> alphaNode = configurator.GetAlphaNode <A>(); alphaNode.AddActivation(propertyNode); JoinNode <A> joinNode = configurator.Join(alphaNode); DelegateProductionNode <A> productionNode = configurator.Delegate <A>((session, x) => _called = x); joinNode.AddActivation(productionNode); LeftJoinNode <A, decimal> leftNode = configurator.Left <A, decimal>(alphaNode); leftNode.AddActivation(joinNode); edgeAlpha.AddActivation(leftNode); using (StatefulSession session = engine.CreateSession()) { session.Add(new A(10001.0m)); session.Run(); } }
public void Setup() { _called = null; var configurator = new RuntimeConfiguratorImpl(); var productionNode = new DelegateProductionNode<A>(16, (session,x) => _called = x); var constantNode = new ConstantNode<A>(42); var joinNode = configurator.CreateNode(id => new JoinNode<A>(id, constantNode)); var constantNode2 = new ConstantNode<A>(27); var joinNode2 = configurator.CreateNode(id => new JoinNode<A>(id, constantNode2)); joinNode2.AddActivation(productionNode); joinNode.AddActivation(joinNode2); var engine = new OdoyuleRulesEngine(configurator); AlphaNode<A> alphaNode = engine.GetAlphaNode<A>(); alphaNode.AddActivation(joinNode); using (StatefulSession session = engine.CreateSession()) { session.Add(new A()); session.Run(); } }