Пример #1
0
        public async Task RunAkkaSimulation(Configuration configuration)
        {
            _configuration = configuration;
            _messageHub.SendToAllClients(msg: "Prepare in Memory model from DB for Simulation: "
                                         + _configuration.GetOption <SimulationId>().Value);

            _messageHub.SendToAllClients(msg: "Prepare Simulation");

            _agentSimulation = new AgentSimulation(DBContext: _context
                                                   , messageHub: _messageHub); // Defines the status output

            var simulation = await _agentSimulation.InitializeSimulation(configuration : _configuration);

            SimulationContext = simulation.SimulationContext;


            if (simulation.IsReady())
            {
                _messageHub.StartSimulation(simId: _configuration.GetOption <SimulationId>().Value.ToString()
                                            , simNumber: _configuration.GetOption <SimulationNumber>().Value.ToString());

                // Start simulation
                var sim = simulation.RunAsync();
                _agentSimulation.StateManager.ContinueExecution(simulation);
                await sim;
            }
            _messageHub.EndSimulation(msg: "Simulation Completed."
                                      , simId: _configuration.GetOption <SimulationId>().Value.ToString()
                                      , simNumber: _configuration.GetOption <SimulationNumber>().Value.ToString());
            return;
        }