public void TestStateWithAgendaGroup() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.StateExampleUsingAgendGroup.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); workingMemory.addEventListener(new AnonymousClassDefaultAgendaEventListener()); State a = new State("A"); State b = new State("B"); State c = new State("C"); State d = new State("D"); // By setting dynamic to TRUE, Drools will use JavaBean // PropertyChangeListeners so you don't have to call modifyObject(). //UPGRADE_NOTE: Final was removed from the declaration of 'dynamic '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" bool dynamic = true; workingMemory.assertObject(a, dynamic); workingMemory.assertObject(b, dynamic); workingMemory.assertObject(c, dynamic); workingMemory.assertObject(d, dynamic); workingMemory.fireAllRules(); }
public decimal GetTravelInsurancePrice(TravelRiskItem riskItem) { string assemblyPath = AppDomain.CurrentDomain.RelativeSearchPath; System.IO.Stream stream = new FileStream(Path.Combine(assemblyPath, @"Rules\", "TravelInsurancePrice.drl"), FileMode.Open); try { var region = _riskItemRepository.GetById(riskItem.RegionID); var sport = riskItem.SportId.HasValue ? _riskItemRepository.GetById(riskItem.SportId.Value) : null; PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl("TravelInsurancePrice.drl", stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); workingMemory.assertObject(region); workingMemory.assertObject(sport); workingMemory.assertObject(riskItem); return(riskItem.RuleAmmount); } finally { stream.Close(); } }
public void TestGolfingExample() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.golf.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); string[] names = new string[] { "Fred", "Joe", "Bob", "Tom" }; string[] colors = new string[] { "red", "blue", "plaid", "orange" }; int[] positions = new int[] { 1, 2, 3, 4 }; for (int n = 0; n < names.Length; n++) { for (int c = 0; c < colors.Length; c++) { for (int p = 0; p < positions.Length; p++) { workingMemory.assertObject(new Golfer(names[n], colors[c], positions[p])); } } } workingMemory.fireAllRules(); }
public void TestExecute() { SpreadsheetCompiler converter = new SpreadsheetCompiler(); System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.resources.data.IntegrationExampleTest.xls"); System.String drl = converter.Compile(stream, InputType.XLS); Assert.IsNotNull(drl); //COMPILE PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(drl); Package pkg = builder.GetPackage(); Assert.IsNotNull(pkg); System.Console.Out.WriteLine(pkg.GetErrorSummary()); Assert.AreEqual(0, builder.GetErrors().Length); RuleBase rb = RuleBaseFactory.NewRuleBase(); rb.AddPackage(pkg); WorkingMemory wm = rb.NewWorkingMemory(); //ASSERT AND FIRE wm.assertObject(new Cheese("stilton", 42)); wm.assertObject(new Person("michael", "stilton", 42)); System.Collections.IList list = new System.Collections.ArrayList(); wm.setGlobal("list", list); wm.fireAllRules(); Assert.AreEqual(1, list.Count); }
public void Simulate(Simulation formSimulation, SimulationDebug formDebug) { _formDebug = formDebug; _formSimulation = formSimulation; formDebug.Show(); //Imprimo this para saber sobre que objeto operaran las reglas FallasI.Simulator.ImprimirEnDebug(this); //Inicio la carga de drools formDebug.debugTxtBox.Text += "\nLoading Rule Base: "; formDebug.debugTxtBox.Refresh(); PackageBuilder builder = new PackageBuilder(); Stream stream = new FileStream(FallasI.Src.App.Default.PATH_ARCHIVO_REGLAS, FileMode.Open); formDebug.debugTxtBox.Text += "\nStream Set "; formDebug.debugTxtBox.Refresh(); formDebug.debugTxtBox.Text += "\nReading DRL (Please wait... this may take a few moments...) "; formDebug.debugTxtBox.Refresh(); builder.AddPackageFromDrl("FallasI.Rules.drl", stream); formDebug.debugTxtBox.Text += "... Finished "; formDebug.debugTxtBox.Refresh(); Package pkg = builder.GetPackage(); formDebug.debugTxtBox.Text += "\nPackage Added "; formDebug.debugTxtBox.Refresh(); ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); formDebug.debugTxtBox.Text += "\nRule Base Set "; formDebug.debugTxtBox.Refresh(); workingMemory = ruleBase.NewWorkingMemory(); workingObj = this; formDebug.debugTxtBox.Text += "\nWorking Object Set "; formDebug.debugTxtBox.Refresh(); //Inicio la ejecucion de drool formDebug.debugTxtBox.Text += "\nRule Runing... "; formDebug.debugTxtBox.Refresh(); if (_currentCust == null) { _currentCust = workingMemory.assertObject(workingObj); } else { workingMemory.modifyObject(_currentCust, workingObj); } workingMemory.fireAllRules(); formDebug.debugTxtBox.Text += "\nFin "; formDebug.debugTxtBox.Refresh(); // llamo a simular _formSimulation.DibujarSimulacion(); //formDebug.Close(); }
public void TestHonestPolitician() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.HonestPolitician.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); Politician blair = new Politician("blair", true); Politician bush = new Politician("bush", true); Politician chirac = new Politician("chirac", true); Politician schroder = new Politician("schroder", true); workingMemory.assertObject(blair); workingMemory.assertObject(bush); workingMemory.assertObject(chirac); workingMemory.assertObject(schroder); workingMemory.fireAllRules(); }
public void TestMannerBenchmark() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.benchmark.manners.manners.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); System.IO.Stream inStr = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.resources.benchmark.manners.manners64.dat"); System.Collections.IList list = getInputObjects(inStr); for (System.Collections.IEnumerator it = list.GetEnumerator(); it.MoveNext();) { System.Object obj = it.Current; workingMemory.assertObject(obj); } workingMemory.assertObject(new Count(1)); long start = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; workingMemory.fireAllRules(); System.Console.Out.WriteLine((System.DateTime.Now.Ticks - 621355968000000000) / 10000 - start); }
public void TestLoadState() { FileStream fstream = new FileStream("StateDynamic.rlb", FileMode.Open); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.Load(fstream); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); State a = new State("A"); State b = new State("B"); State c = new State("C"); State d = new State("D"); State e = new State("E"); // By setting dynamic to TRUE, Drools will use JavaBean // PropertyChangeListeners so you don't have to call modifyObject(). //UPGRADE_NOTE: Final was removed from the declaration of 'dynamic '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" bool dynamic = true; workingMemory.assertObject(a, dynamic); workingMemory.assertObject(b, dynamic); workingMemory.assertObject(c, dynamic); workingMemory.assertObject(d, dynamic); workingMemory.assertObject(e, dynamic); workingMemory.fireAllRules(); }
private void Form1_Shown(object sender, EventArgs e) { _thisForm = this; debugOutput.Text += "\nLoading Rule Base: "; _thisForm.Refresh(); PackageBuilder builder = new PackageBuilder(); Stream stream = new FileStream(@"C:\Documents and Settings\TricolorerVirtual\Escritorio\MinimalDroolsForm.rar\MinimalDroolsForm\SimpleRulesExt.drl", FileMode.Open); debugOutput.Text += "\nStream Set "; _thisForm.Refresh(); debugOutput.Text += "\nReading DRL (Please wait... this may take a few moments...) "; _thisForm.Refresh(); builder.AddPackageFromDrl("MinimalDroolsForm.SimpleRules.drl", stream); debugOutput.Text += "... Finished "; _thisForm.Refresh(); Package pkg = builder.GetPackage(); debugOutput.Text += "\nPackage Added "; _thisForm.Refresh(); ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); debugOutput.Text += "\nRule Base Set "; _thisForm.Refresh(); workingMemory = ruleBase.NewWorkingMemory(); workingObj = new CustomerRecord(); secondWorkingObj = null; }
public Parser() { builder = new PackageBuilder(); stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("Sensip.Language.LanguageRules.drl"); builder.AddPackageFromDrl("Language.LanguageRules.drl", stream); pkg = builder.GetPackage(); ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); message = new Message(); }
private RuleBase readPrecompiled(string fileName) { RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); FileStream fstream = new FileStream(fileName, FileMode.Open); ruleBase.Load(fstream); fstream.Close(); return(ruleBase); }
public void TestTroubleTicketwithDSL() { System.IO.Stream source = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.TroubleTicketWithDSL.drl"); System.IO.Stream dsl = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.ticketing.dsl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(source, dsl); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(builder.GetPackage()); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); Customer a = new Customer("A", "Gold"); Customer b = new Customer("B", "Platinum"); Customer c = new Customer("C", "Silver"); Customer d = new Customer("D", "Silver"); Ticket t1 = new Ticket(a); Ticket t2 = new Ticket(b); Ticket t3 = new Ticket(c); Ticket t4 = new Ticket(d); FactHandle fa = workingMemory.assertObject(a); FactHandle fb = workingMemory.assertObject(b); FactHandle fc = workingMemory.assertObject(c); FactHandle fd = workingMemory.assertObject(d); FactHandle ft1 = workingMemory.assertObject(t1); FactHandle ft2 = workingMemory.assertObject(t2); FactHandle ft3 = workingMemory.assertObject(t3); FactHandle ft4 = workingMemory.assertObject(t4); workingMemory.fireAllRules(); t3.Status = "Done"; workingMemory.modifyObject(ft3, t3); try { System.Console.Error.WriteLine("[[ Sleeping 5 seconds ]]"); System.Threading.Thread.Sleep(new System.TimeSpan((System.Int64) 10000 * 5000)); } catch (System.Threading.ThreadInterruptedException e) { //SupportClass.WriteStackTrace(e, Console.Error); } workingMemory.fireAllRules(); //logger.writeToDisk(); }
private RuleBase readRule(string file) { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.benchmark." + file); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); return(ruleBase); }
private RuleBase readRule(System.String file) { System.IO.Stream stream = new System.IO.FileStream(file, FileMode.Open); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); return(ruleBase); }
public void TestASaveRuleBase() { PackageBuilder builder = new PackageBuilder(); System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.precompiled.HelloWorld.drl"); builder.AddPackageFromDrl("HelloWorld.drl", stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); FileStream fstream = new FileStream("HelloworldRuleBase.rlb", FileMode.Create); ruleBase.Save(fstream); fstream.Close(); }
public void TestBLoadRuleBase() { RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); FileStream fstream = new FileStream("HelloworldRuleBase.rlb", FileMode.Open); ruleBase.Load(fstream); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); //go ! Message message = new Message(); message.message = "Hello World"; message.status = Message.HELLO; workingMemory.assertObject(message); workingMemory.fireAllRules(); }
public void TestASavePkg() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.TroubleTicket.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); FileStream fstream = new FileStream("TroubleticketRuleBase.rlb", FileMode.Create); ruleBase.Save(fstream); fstream.Close(); stream.Close(); }
public void TestBLoadPkg() { //AppDomain.CurrentDomain.Load("tempAssembly.dll"); FileStream stream = new FileStream("TroubleticketRuleBase.rlb", FileMode.Open); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.Load(stream); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); Customer a = new Customer("A", "Gold"); Customer b = new Customer("B", "Platinum"); Customer c = new Customer("C", "Silver"); Customer d = new Customer("D", "Silver"); Ticket t1 = new Ticket(a); Ticket t2 = new Ticket(b); Ticket t3 = new Ticket(c); Ticket t4 = new Ticket(d); FactHandle fa = workingMemory.assertObject(a); FactHandle fb = workingMemory.assertObject(b); FactHandle fc = workingMemory.assertObject(c); FactHandle fd = workingMemory.assertObject(d); FactHandle ft1 = workingMemory.assertObject(t1); FactHandle ft2 = workingMemory.assertObject(t2); FactHandle ft3 = workingMemory.assertObject(t3); FactHandle ft4 = workingMemory.assertObject(t4); workingMemory.fireAllRules(); t3.Status = "Done"; workingMemory.modifyObject(ft3, t3); try { System.Console.Error.WriteLine("[[ Sleeping 5 seconds ]]"); System.Threading.Thread.Sleep(new System.TimeSpan((System.Int64) 10000 * 5000)); } catch (System.Threading.ThreadInterruptedException e) { //SupportClass.WriteStackTrace(e, Console.Error); } System.Console.Error.WriteLine("[[ awake ]]"); }
public void TestWaltzBenchmark() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.benchmark.waltz.waltz.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); //this.loadLines( workingMemory, "waltz12.dat" ); Stage stage = new Stage(Stage.START); workingMemory.assertObject(stage); workingMemory.fireAllRules(); }
public void TestBLoadAndChangeSavedState() { FileStream fstream = new FileStream("StateDynamic.rlb", FileMode.Open); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.Load(fstream); fstream.Close(); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); State a = new State("A"); State b = new State("B"); State c = new State("C"); State d = new State("D"); State e = new State("E"); // By setting dynamic to TRUE, Drools will use JavaBean // PropertyChangeListeners so you don't have to call modifyObject(). //UPGRADE_NOTE: Final was removed from the declaration of 'dynamic '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" bool dynamic = true; workingMemory.assertObject(a, dynamic); workingMemory.assertObject(b, dynamic); workingMemory.assertObject(c, dynamic); workingMemory.assertObject(d, dynamic); workingMemory.assertObject(e, dynamic); workingMemory.fireAllRules(); Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.StateExampleDynamicRule.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); ruleBase.AddPackage(pkg); fstream = new FileStream("StateDynamic.rlb", FileMode.Create); ruleBase.Save(fstream); stream.Close(); fstream.Close(); }
public void TestHelloWorldExample() { PackageBuilder builder = new PackageBuilder(); System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.HelloWorld.drl"); builder.AddPackageFromDrl("HelloWorld.drl", stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); //go ! Message message = new Message(); message.message = "Hello World"; message.status = Message.HELLO; workingMemory.assertObject(message); workingMemory.fireAllRules(); }
static void Main(string[] args) { PackageBuilder builder = new PackageBuilder(); //use Assembly.GetExecutingAssembly().GetManifestResourceNames() to get full name of Drools rule file Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Drools.Net.Rules.SimpleRules.drl"); builder.AddPackageFromDrl("Drools.Net.Rules.SimpleRules.drl", stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); CustomerRecord workingObj = new CustomerRecord() { Value = 51 }; TestRules(ruleBase, workingObj); //Old customer workingObj = new CustomerRecord() { Value = 10, DaysSinceLastOrder = 100, Status = "Active" }; TestRules(ruleBase, workingObj); //Welcome BACK Discount workingObj = new CustomerRecord() { Value = 70, Status = "Re-Active" }; TestRules(ruleBase, workingObj); Console.ReadLine(); }
public void TestFibonacciExample() { System.IO.Stream stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream("org.drools.dotnet.examples.rules.Fibonacci.drl"); PackageBuilder builder = new PackageBuilder(); builder.AddPackageFromDrl(stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); WorkingMemory workingMemory = ruleBase.NewWorkingMemory(); // By setting dynamic to TRUE, Drools will use JavaBean // PropertyChangeListeners so you don't have to call modifyObject(). //UPGRADE_NOTE: Final was removed from the declaration of 'dynamic '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'" bool dynamic = false; workingMemory.assertObject(new Fibonacci(50), dynamic); workingMemory.fireAllRules(); }