static void Main(string[] args) { var protocol1 = new Protocol() { Kv = 200, Ma = 200, Name = "Cardiac" }; var protocol2 = new Protocol() { Kv = 20, Ma = 200, Name = "Scout" }; Console.WriteLine("P1: " + protocol1); Console.WriteLine("P2: " + protocol2); var engine = RulesEngineFactory.New(x => { x.Rules(r => { r.Add <Temp>(); r.Add <Temp2>(); //r.Add<MaxKvRule>(); //r.Add<MinKvRule>(); //r.Add<ScoutKvRule>(); }); }); var visitor = new TextRuntimeVisitor(); engine.Accept(visitor); Console.WriteLine(visitor); using (var session = engine.CreateSession()) { session.Add(protocol1); session.Add(protocol2); session.Run(); var changes = session.Facts <Changed>().ToArray(); Console.WriteLine("\n\n"); foreach (var change in changes) { Console.WriteLine("{0} has changed in {1}", change.Fact.Parameter, change.Fact.Name); } } Console.WriteLine("P1: " + protocol1); Console.WriteLine("P2: " + protocol2); Console.ReadLine(); }
public void Should_not_activate_for_only_other_side() { _result = null; RulesEngine rulesEngine = RulesEngineFactory.New(x => { x.Add(_rule); }); using (Session session = rulesEngine.CreateSession()) { session.Add(new Order { Name = "MAMA", Amount = 10001.0m }); session.Run(); } var visitor = new TextRuntimeVisitor(); rulesEngine.Accept(visitor); Console.WriteLine(visitor); Assert.IsNull(_result); }
public void Should_compile_and_execute() { _result = null; RulesEngine rulesEngine = RulesEngineFactory.New(x => { x.Add(_rule); }); using (Session session = rulesEngine.CreateSession()) { session.Add(new Order { Name = "JOE", Amount = 10001.0m }); session.Run(); } var visitor = new TextRuntimeVisitor(); rulesEngine.Accept(visitor); Console.WriteLine(visitor); Assert.IsNotNull(_result); Assert.IsNotNull(_resultB); }
public void Should_compile_and_execute() { _result = null; RulesEngine rulesEngine = RulesEngineFactory.New(x => { x.Add(_rule); }); using (Session session = rulesEngine.CreateSession()) { session.Add(new Order {Name = "JOE", Amount = 10001.0m}); session.Run(); } var visitor = new TextRuntimeVisitor(); rulesEngine.Accept(visitor); Console.WriteLine(visitor); Assert.IsNotNull(_result); Assert.IsNotNull(_resultB); }
public void Should_not_activate_for_only_other_side() { _result = null; RulesEngine rulesEngine = RulesEngineFactory.New(x => { x.Add(_rule); }); using (Session session = rulesEngine.CreateSession()) { session.Add(new Order {Name = "MAMA", Amount = 10001.0m}); session.Run(); } var visitor = new TextRuntimeVisitor(); rulesEngine.Accept(visitor); Console.WriteLine(visitor); Assert.IsNull(_result); }