public int CreateRequiredArticles(FArticle articleToProduce, IActorRef requestingAgent, long currentTime) { List <ArticleProvider> listAP = new List <ArticleProvider>(); var counter = articleToProduce.Article.ArticleBoms.Count; foreach (var fOperation in GetOperations) { var provider = GetArticleDispoProvider(operationKey: fOperation.Key); if (fOperation.Operation.ArticleBoms.Count == 0) { //TODO Log this somewhere - not in System Debug //System.Diagnostics.Debug.WriteLine($"Operation {fOperation.Operation.Name} of Article {articleToProduce.Article.Name} has no RequiredArticles!"); fOperation.StartConditions.ArticlesProvided = true; } foreach (var bom in fOperation.Operation.ArticleBoms) { var createdArticleProvider = new ArticleProvider(provider: ActorRefs.Nobody, article: bom.ToRequestItem(requestItem: articleToProduce , requester: requestingAgent , currentTime: currentTime)); listAP.Add(createdArticleProvider); provider.DispoToArticleRelation.Add(createdArticleProvider); } } //TODO Log this somewhere //System.Diagnostics.Debug.WriteLine($"ProductionAgent {articleToProduce.Article.Name} require {counter} Bom elements and therefore created {listAP.Count} Dispos."); return(listAP.Count); }
public int CreateRequiredArticles(FArticle articleToProduce, IActorRef requestingAgent, long currentTime) { List <ArticleProvider> listAP = new List <ArticleProvider>(); var remainingDuration = articleToProduce.RemainingDuration; foreach (var fOperation in GetOperations.OrderByDescending(x => x.Operation.HierarchyNumber)) { remainingDuration += fOperation.Operation.Duration; var provider = GetArticleDispoProvider(operationKey: fOperation.Key); if (fOperation.Operation.ArticleBoms.Count == 0) { //TODO Log this somewhere - not in System Debug //System.Diagnostics.Debug.WriteLine($"Operation {fOperation.Operation.Name} of Article {articleToProduce.Article.Name} has no RequiredArticles!"); fOperation.SetStartConditions(fOperation.StartConditions.PreCondition, true); } foreach (var bom in fOperation.Operation.ArticleBoms) { var createdArticleProvider = new ArticleProvider(provider: ActorRefs.Nobody, article: bom.ToRequestItem(requestItem: articleToProduce , requester: requestingAgent , remainingDuration: remainingDuration , customerDue: articleToProduce.CustomerDue , currentTime: currentTime)); listAP.Add(createdArticleProvider); provider.DispoToArticleRelation.Add(createdArticleProvider); } } return(listAP.Count); }