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; }