Esempio n. 1
0
        /// <summary>
        /// load article information to ArticleMasterSetRequest
        /// </summary>
        /// <param name="currentArticleTree">Article tree to update</param>
        /// <param name="article">Article source information.</param>
        private void LoadPISArticleToRequest(ArticleTree <PISArticle> currentArticleTree, Article article)
        {
            PISArticle currentPISArticle = currentArticleTree.GetArticle();

            currentPISArticle.Attributes[PisArticleAttribute.RequiredFridge].Value = TypeConverter.ConvertBool(article.RequiresFridge).ToString();
            currentPISArticle.ScanCodes.Add(new PisArticleScanCode()
            {
                PisArticleID = currentPISArticle.ID,
                ScanCode     = article.Id != null ? TextConverter.UnescapeInvalidXmlChars(article.Id) : string.Empty,
            });

            currentPISArticle.MaxSubItemQuantity = TypeConverter.ConvertInt(article.MaxSubItemQuantity);
            currentPISArticle.StockLocationID    = string.IsNullOrEmpty(article.StockLocationId) ? string.Empty : TextConverter.UnescapeInvalidXmlChars(article.StockLocationId);
            currentPISArticle.MachineLocation    = string.IsNullOrEmpty(article.MachineLocation) ? string.Empty : TextConverter.UnescapeInvalidXmlChars(article.MachineLocation);

            currentPISArticle.BatchTracking  = TypeConverter.ConvertBool(article.BatchTracking);
            currentPISArticle.SerialTracking = TypeConverter.ConvertBool(article.SerialTracking);
            currentPISArticle.ExpiryTracking = TypeConverter.ConvertBool(article.ExpiryTracking);

            // Load current article child Articles.
            for (int i = 0; i < article.ChildArticle.Count; ++i)
            {
                LoadPISArticleToRequest(currentArticleTree.GetChildren()[i], article.ChildArticle[i]);
            }
        }
        public void GenerateModel()
        {
            var articleTree  = new ArticleTree();
            var parameterSet = ParameterSet.Create(ParameterSet.Defaults);
            var dataBase     = parameterSet.GetOption <DataBase <ProductionDomainContext> >();

            // Your Method.
            articleTree.Create(parameterSet);

            Assert.True(dataBase.DbContext.ResourceCapabilities.Count() != 0);
        }
        /// <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
        private void LoadArticleToReponse(StockInputResponse response, ArticleTree <RobotArticle> currentArticleTree, Article article)
        {
            // 1) Load current Article information
            RobotArticle robotArticle = currentArticleTree.GetArticle();

            robotArticle.DosageForm         = TextConverter.UnescapeInvalidXmlChars(article.DosageForm != null ? article.DosageForm : string.Empty);
            robotArticle.Code               = TextConverter.UnescapeInvalidXmlChars(article.Id != null ? article.Id : string.Empty);
            robotArticle.Name               = TextConverter.UnescapeInvalidXmlChars(article.Name != null ? article.Name : string.Empty);
            robotArticle.PackagingUnit      = TextConverter.UnescapeInvalidXmlChars(article.PackagingUnit != null ? article.PackagingUnit : string.Empty);
            robotArticle.MaxSubItemQuantity = TypeConverter.ConvertInt(article.MaxSubItemQuantity);
            robotArticle.RequiresFridge     = TypeConverter.ConvertBool(article.RequiresFridge);

            // 2) Load current article pack information
            foreach (var pack in article.Pack)
            {
                response.Packs.Add(new Interfaces.Types.Packs.RobotPack()
                {
                    ID = (long)TypeConverter.ConvertULong(pack.Id),
                    RobotArticleCode = robotArticle.Code,
                    ScanCode         = TextConverter.UnescapeInvalidXmlChars(pack.ScanCode),
                    DeliveryNumber   = TextConverter.UnescapeInvalidXmlChars(pack.DeliveryNumber),
                    BatchNumber      = TextConverter.UnescapeInvalidXmlChars(pack.BatchNumber),
                    ExternalID       = TextConverter.UnescapeInvalidXmlChars(pack.ExternalId),
                    ExpiryDate       = TypeConverter.ConvertDate(pack.ExpiryDate),
                    SubItemQuantity  = TypeConverter.ConvertInt(pack.SubItemQuantity),
                    StockLocationID  = string.IsNullOrEmpty(pack.StockLocationId) ? string.Empty : TextConverter.UnescapeInvalidXmlChars(pack.StockLocationId),
                });

                // only add to the article list, the articles related to pack behing input.
                response.Articles.Add(robotArticle);

                response.Handlings.Add(response.Packs[response.Packs.Count - 1],
                                       new StockInputHandling()
                {
                    Handling    = pack.Handling.Input,
                    Description = string.IsNullOrEmpty(pack.Handling.Text) ? string.Empty : TextConverter.UnescapeInvalidXmlChars(pack.Handling.Text)
                });
            }

            // 3) Load current article child Articles.
            foreach (var childArticle in article.ChildArticle)
            {
                ArticleTree <RobotArticle> childArticleTree = new ArticleTree <RobotArticle>();
                LoadArticleToReponse(response, childArticleTree, childArticle);
                currentArticleTree.AddChild(childArticleTree);
            }
        }
        /// <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 MosaicMessage ToMosaicMessage(IConverterStream converterStream)
        {
            StockInputResponse response = new StockInputResponse(converterStream);

            response.ID              = this.Id;
            response.Source          = this.Source;
            response.Destination     = this.Destination;
            response.IsDeliveryInput = TypeConverter.ConvertBool(this.IsNewDelivery);

            if (this.Article.Count > 0)
            {
                foreach (var article in this.Article)
                {
                    ArticleTree <RobotArticle> currentArticleTree = new ArticleTree <RobotArticle>();
                    response.ArticleTrees.Add(currentArticleTree);
                    LoadArticleToReponse(response, currentArticleTree, article);
                }
            }

            return(response);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        /// <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);
            }
        }