Example #1
0
 public Supervisor(ActorPaths actorPaths
                   , long time
                   , bool debug
                   , ProductionDomainContext productionDomainContext
                   , IMessageHub messageHub
                   , Configuration configuration
                   , List <FSetEstimatedThroughputTime> estimatedThroughputTimes
                   , IActorRef principal
                   )
     : base(actorPaths: actorPaths, time: time, debug: debug, principal: principal)
 {
     _productionDomainContext = productionDomainContext;
     _dataBaseConnection      = _productionDomainContext.Database.GetDbConnection();
     _articleCache            = new ArticleCache(connectionString: _dataBaseConnection.ConnectionString);
     _messageHub     = messageHub;
     _orderGenerator = new OrderGenerator(simConfig: configuration, productionDomainContext: _productionDomainContext
                                          , productIds: estimatedThroughputTimes.Select(x => x.ArticleId).ToList());
     _orderCounter     = new OrderCounter(maxQuantity: configuration.GetOption <OrderQuantity>().Value);
     _configID         = configuration.GetOption <SimulationId>().Value;
     _simulationType   = configuration.GetOption <SimulationKind>().Value;
     _transitionFactor = configuration.GetOption <TransitionFactor>().Value;
     estimatedThroughputTimes.ForEach(SetEstimatedThroughputTime);
     Send(instruction: Instruction.PopOrder.Create(message: "Pop", target: Self), waitFor: 1);
     Send(instruction: Instruction.EndSimulation.Create(message: true, target: Self), waitFor: configuration.GetOption <SimulationEnd>().Value);
     Send(instruction: Instruction.SystemCheck.Create(message: "CheckForOrders", target: Self), waitFor: 1);
     DebugMessage(msg: "Agent-System ready for Work");
 }
Example #2
0
 public Default(ProductionDomainContext productionDomainContext
                , IMessageHub messageHub
                , Configuration configuration
                , List <FSetEstimatedThroughputTimes.FSetEstimatedThroughputTime> estimatedThroughputTimes)
 {
     _productionDomainContext = productionDomainContext;
     _dataBaseConnection      = _productionDomainContext.Database.GetDbConnection();
     _articleCache            = new ArticleCache(connectionString: new DbConnectionString(_dataBaseConnection.ConnectionString));
     _messageHub     = messageHub;
     _orderGenerator = new OrderGenerator(simConfig: configuration, productionDomainContext: _productionDomainContext
                                          , productIds: estimatedThroughputTimes.Select(x => x.ArticleId).ToList());
     _orderCounter     = new OrderCounter(maxQuantity: configuration.GetOption <OrderQuantity>().Value);
     _configID         = configuration.GetOption <SimulationId>().Value;
     _simulationEnds   = configuration.GetOption <SimulationEnd>().Value;
     _simulationType   = configuration.GetOption <SimulationKind>().Value;
     _transitionFactor = configuration.GetOption <TransitionFactor>().Value;
     estimatedThroughputTimes.ForEach(SetEstimatedThroughputTime);
 }