private static void Main(string[] args) { var xml = SimulationCases.LoadXmlAsync(SimulationCases.Case01).Result; var simulation = new RentalContractSimulationFromXml(xml); var simulator = new Simulator(simulation); SimulatorPrinter.PrintInfo("blablabla balbla"); simulator.Start(); Console.WriteLine("---- END ----"); Console.ReadKey(); }
public async Task <ProcessSimulation> LoadAsync(string caseName) { var processKind = await LoadDefinitionAsync(); var caseXml = await SimulationCases.LoadXmlAsync(caseName); var simulation = new RentalContractSimulationFromXml(caseXml); simulation.Prepare(); var transactions = simulation.ProcessInstance.GetTransactions(); foreach (var instance in transactions) { TreeStructureHelper.Traverse <TransactionInstance, TransactionKind>(instance, (node) => processKind.GetTransactionById(node.Id), (transactionInstance, transactionKind) => { transactionInstance.TransactionKind = transactionKind; }); } return(simulation); }
public async Task Start() { if (timer == null) { timer = new Timer(NotifySimulationNextStep); } // var caseParser = new SimulationCaseParser(); var parser = new ProcessKindXmlParser(); var xml = await SimulationCases.LoadXmlAsync(SimulationCases.ModelDefinition); processKind = parser.ParseDefinition(xml); var caseXml = await SimulationCases.LoadXmlAsync(SimulationCases.Case01); simulation = new RentalContractSimulationFromXml(caseXml); simulation.Prepare(); //send model definition await Hub.Clients.All.NotifyStart(processKind); timer.Change(TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(1)); }
private static async Task <ProcessKind> LoadDefinitionAsync() { var xml = await SimulationCases.LoadXmlAsync(SimulationCases.ModelDefinition); return(new ProcessKindXmlParser().ParseDefinition(xml)); }