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