public void QuandoOCalculoDePosicaoECalculado() { var bridgeSetup = new BridgeSetup(); bridgeSetup.AddAllJarsClassPath("."); bridgeSetup.IgnoreJavaHome = true; // Workaround: https://jira.talendforge.org/browse/TUP-477 bridgeSetup.AddJVMOption("-Ddrools.dialect.java.compiler.lnglevel", "1.6"); //bridgeSetup.Verbose = true; Bridge.CreateJVM(bridgeSetup); Bridge.RegisterAssembly(typeof(Date).Assembly); Bridge.RegisterAssembly(typeof(KnowledgeBaseFactory).Assembly); Bridge.RegisterAssembly(typeof(TypedCashflow_).Assembly); var fatos = new List<Object>(); // Eventos foreach (var evento in ScenarioContext.Current.Get<List<Evento>>("EVENTOS")) { fatos.Add(Bridge.WrapCLR(evento)); } // Escalas. foreach (var escala in ScenarioContext.Current.Get<List<Escala>>("ESCALAS")) { fatos.Add(Bridge.WrapCLR(escala)); } var ksession = new RuleRunner().runRules(new string[] { "RegraPosicao.drl" }, fatos.ToArray()); var objetos = ksession.getObjects(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Resultado Final:"); Console.WriteLine(); var eventosComOcorrencia = new List<Evento>(); foreach (var objeto in objetos.toArray()) { Console.WriteLine(objeto.toString()); try { var objetoCrl = Bridge.UnwrapCLR<Evento>(objeto); if (objetoCrl != null) { eventosComOcorrencia.Add(objetoCrl); } } catch (InvalidCastException) { } } ScenarioContext.Current.Add("EVENTOS_COM_OCORRENCIA", eventosComOcorrencia); }
private static void Main(string[] args) { try { var bridgeSetup = new BridgeSetup(); bridgeSetup.AddAllJarsClassPath("."); bridgeSetup.IgnoreJavaHome = true; // Workaround: https://jira.talendforge.org/browse/TUP-477 bridgeSetup.AddJVMOption("-Ddrools.dialect.java.compiler.lnglevel", "1.6"); //bridgeSetup.Verbose = true; Bridge.CreateJVM(bridgeSetup); Bridge.RegisterAssembly(typeof(Date).Assembly); Bridge.RegisterAssembly(typeof(KnowledgeBaseFactory).Assembly); Bridge.RegisterAssembly(typeof(TypedCashflow_).Assembly); //Example1(); //Example2(); //Example3(); //Example4(); //Example5(); //Example6(); RegraPosicao(); } catch(System.Exception ex) { Console.WriteLine(ex); } }