public void AddAll(EntityCollector otherEntityCollector) { if (otherEntityCollector == null) { return; } if (otherEntityCollector._demands.Any()) { _demands.AddAll(otherEntityCollector._demands); } if (otherEntityCollector._providers.Any()) { _providers.AddAll(otherEntityCollector._providers); } if (otherEntityCollector._demandToProviderTable.Any()) { _demandToProviderTable.AddAll(otherEntityCollector._demandToProviderTable); } if (otherEntityCollector._providerToDemandTable.Any()) { _providerToDemandTable.AddAll(otherEntityCollector._providerToDemandTable); } }
public Providers ProvidersGetAll() { Providers providers = new Providers(); providers.AddAll(_productionOrders); providers.AddAll(_purchaseOrderParts); providers.AddAll(_stockExchangeProviders); return(providers); }
public static void ApplyConfirmations() { IDbTransactionData dbTransactionData = ZppConfiguration.CacheManager.GetDbTransactionData(); IAggregator aggregator = ZppConfiguration.CacheManager.GetAggregator(); // ProductionOrder: 3 Zustände siehe DA Providers copyOfProductionOrders = new Providers(); copyOfProductionOrders.AddAll(dbTransactionData.ProductionOrderGetAll()); foreach (var provider in copyOfProductionOrders) { ProductionOrder productionOrder = (ProductionOrder)provider; State state = productionOrder.DetermineProductionOrderState(); switch (state) { case State.Created: HandleProductionOrderIsInStateCreated(productionOrder, aggregator, dbTransactionData); break; case State.InProgress: HandleProductionOrderIsInProgress(); break; case State.Finished: HandleProductionOrderIsFinished(productionOrder, aggregator, dbTransactionData); break; default: throw new MrpRunException("This state is not expected."); } } // Entferne alle Pfeile auf StockExchangeProvider zeigend // Entferne alle Pfeile von StockExchangeDemands weg zeigend // --> übrig beleiben Pfeile zwischen StockExchangeProvider und StockExchangeDemands RemoveArrowsBelowStockExchangeDemandsAndAboveStockExchangeProviders(dbTransactionData, aggregator); /* * foreach sed in beendeten und geschlossenen StockExchangeDemands * Archiviere sed und seine parents (StockExchangeProvider) * und die Pfeile dazwischen */ ArchiveClosedStockExchangeDemandsAndItsParents(dbTransactionData, aggregator); // this can be the case of stockExchangeProvider had multiple child stockExchangeDemands ArchiveStockExchangeProvidersWithoutChilds(dbTransactionData, aggregator); ArchiveFinishedCustomerOrderPartsAndDeleteTheirArrows(dbTransactionData, aggregator); ArchiveFinishedPurchaseOrderPartsAndDeleteTheirArrows(dbTransactionData, aggregator); ArchivedCustomerOrdersWithoutCustomerOrderParts(); ArchivedPurchaseOrdersWithoutPurchaseOrderParts(); }
private static void ArchiveStockExchangeProvidersWithoutChilds( IDbTransactionData dbTransactionData, IAggregator aggregator) { Providers copyOfStockExchangeProviders = new Providers(); copyOfStockExchangeProviders.AddAll(dbTransactionData.StockExchangeProvidersGetAll()); foreach (var stockExchangeProvider in copyOfStockExchangeProviders) { Demands stockExchangeDemands = aggregator.GetAllChildDemandsOf(stockExchangeProvider); if (stockExchangeDemands == null || stockExchangeDemands.Any() == false) { ArchiveDemandOrProvider(stockExchangeProvider, dbTransactionData, aggregator, false); } } }
private static void ArchiveFinishedPurchaseOrderPartsAndDeleteTheirArrows( IDbTransactionData dbTransactionData, IAggregator aggregator) { Providers copyOfPurchaseOrderParts = new Providers(); copyOfPurchaseOrderParts.AddAll(dbTransactionData.PurchaseOrderPartGetAll()); foreach (var purchaseOrderPart in copyOfPurchaseOrderParts) { if (purchaseOrderPart.IsFinished()) { // delete arrow List <ILinkDemandAndProvider> arrows = aggregator.GetArrowsFrom(purchaseOrderPart); if (arrows != null) { dbTransactionData.DeleteAllFrom(arrows); } // archive purchaseOrderPart ArchiveDemandOrProvider(purchaseOrderPart, dbTransactionData, aggregator, false); } } }