/// <summary> /// Translates this object instance into a Mosaic message. /// </summary> /// <param name="converterStream">The converter stream instance which request the message conversion.</param> /// <returns> /// The Mosaic message representation of this object. /// </returns> public virtual MosaicMessage ToMosaicMessage(IConverterStream converterStream) { var request = new Interfaces.Messages.Stock.ArticleMasterSetRequest(converterStream); request.ID = this.Id; request.Source = this.Source; request.Destination = this.Destination; if (this.Article == null) { return(request); } foreach (var article in this.Article) { ArticleTree <PISArticle> currentArticleTree = new ArticleTree <PISArticle>(); request.ArticleTrees.Add(currentArticleTree); LoadPISArticleToRequestSmallSet(request, currentArticleTree, article); } return(request); }
/// <summary> /// load article information to ArticleMasterSetRequest Small set /// </summary> /// <param name="request">ArticleMasterSetRequest to update.</param> /// <param name="currentArticleTree">Article tree to update</param> /// <param name="article">Article source information.</param> private void LoadPISArticleToRequestSmallSet(Interfaces.Messages.Stock.ArticleMasterSetRequest request, ArticleTree <PISArticle> currentArticleTree, Article article) { PISArticle currentPISArticle = currentArticleTree.GetArticle(); currentPISArticle.Code = article.Id != null?TextConverter.UnescapeInvalidXmlChars(article.Id) : string.Empty; currentPISArticle.Name = article.Name != null?TextConverter.UnescapeInvalidXmlChars(article.Name) : string.Empty; currentPISArticle.DosageForm = article.DosageForm != null?TextConverter.UnescapeInvalidXmlChars(article.DosageForm) : string.Empty; currentPISArticle.PackagingUnit = article.PackagingUnit != null?TextConverter.UnescapeInvalidXmlChars(article.PackagingUnit) : string.Empty; currentPISArticle.RobotArticleCode = article.Id != null?TextConverter.UnescapeInvalidXmlChars(article.Id) : string.Empty; // in wwks2, PIS code = robot article code. request.PISArticles.Add(currentPISArticle); // Load current article child Articles. foreach (var childArticle in article.ChildArticle) { ArticleTree <PISArticle> childArticleTree = new ArticleTree <PISArticle>(); LoadPISArticleToRequestSmallSet(request, childArticleTree, childArticle); currentArticleTree.AddChild(childArticleTree); } }