Esempio n. 1
0
        private static ProductAmazon createProductAmazon(AmazonService.Item item, string eisSku)
        {
            var eProduct = new ProductAmazon
            {
                EisSKU          = eisSku,
                ASIN            = item.ASIN,
                Brand           = item.ItemAttributes.Brand,
                Color           = item.ItemAttributes.Color,
                EAN             = item.ItemAttributes.EAN,
                Label           = item.ItemAttributes.Label,
                Manufacturer    = item.ItemAttributes.Manufacturer,
                Model           = item.ItemAttributes.Model,
                NumOfItems      = Convert.ToInt32(item.ItemAttributes.NumberOfItems),
                PackageQty      = Convert.ToInt32(item.ItemAttributes.PackageQuantity),
                ProductGroup    = item.ItemAttributes.ProductGroup,
                ProductTypeName = item.ItemAttributes.ProductTypeName,
                Size            = item.ItemAttributes.Size,
                ProductTitle    = item.ItemAttributes.Title,
                MapPrice        = item.ItemAttributes.ListPrice == null ? 0 : (Convert.ToDecimal(item.ItemAttributes.ListPrice.Amount) / 100),
            };

            // set the product images
            if (item.ImageSets != null)
            {
                var primaryImage = item.ImageSets.FirstOrDefault(x => x.Category == "primary");
                if (primaryImage != null)
                {
                    var images = new List <MediaContent>()
                    {
                        new MediaContent {
                            Url     = primaryImage.LargeImage.URL,
                            Type    = "LARGE",
                            Caption = _channelName,
                            Id      = 1
                        }
                    };

                    eProduct.Images = images;
                }
            }

            // set the product' item dimension
            var itemDimensionNode = item.ItemAttributes.ItemDimensions;

            if (itemDimensionNode != null)
            {
                var length = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Length), parseDimensionUnit(itemDimensionNode.Length));
                var width  = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Width), parseDimensionUnit(itemDimensionNode.Width));
                var height = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Height), parseDimensionUnit(itemDimensionNode.Height));
                var weight = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Weight), parseDimensionUnit(itemDimensionNode.Weight));
                eProduct.ItemDimension = new Dimension(length, width, height, weight);
            }

            // the the product's package dimenstion
            var pkgDimensionNode = item.ItemAttributes.PackageDimensions;

            if (pkgDimensionNode != null)
            {
                var length = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Length), parseDimensionUnit(pkgDimensionNode.Length));
                var width  = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Width), parseDimensionUnit(pkgDimensionNode.Width));
                var height = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Height), parseDimensionUnit(pkgDimensionNode.Height));
                var weight = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Weight), parseDimensionUnit(pkgDimensionNode.Weight));
                eProduct.PackageDimension = new Dimension(length, width, height, weight);
            }

            // get the condition type and leadtime ship of the prouduct
            if (item.Offers.Offer != null)
            {
                var offerNode = item.Offers.Offer.FirstOrDefault();
                eProduct.Condition = offerNode == null ? string.Empty : offerNode.OfferAttributes.Condition;
            }

            return(eProduct);
        }
        private MarketplaceProduct parsedToMarketplaceProduct(AmazonService.Item item)
        {
            try
            {
                var eProduct = new ProductAmazon
                {
                    ASIN            = item.ASIN,
                    Brand           = item.ItemAttributes.Brand,
                    Color           = item.ItemAttributes.Color,
                    EAN             = item.ItemAttributes.EAN,
                    Label           = item.ItemAttributes.Label,
                    Manufacturer    = item.ItemAttributes.Manufacturer,
                    Model           = item.ItemAttributes.Model,
                    NumOfItems      = Convert.ToInt16(item.ItemAttributes.NumberOfItems),
                    PackageQty      = Convert.ToInt16(item.ItemAttributes.PackageQuantity),
                    ProductGroup    = item.ItemAttributes.ProductGroup,
                    ProductTypeName = item.ItemAttributes.ProductTypeName,
                    Size            = item.ItemAttributes.Size,
                    ProductTitle    = item.ItemAttributes.Title,
                    MapPrice        = item.ItemAttributes.ListPrice == null ? 0 : (Convert.ToDecimal(item.ItemAttributes.ListPrice.Amount) / 100),
                };

                // set the product images
                if (item.ImageSets != null)
                {
                    var primaryImage = item.ImageSets.FirstOrDefault(x => x.Category == "primary");
                    if (primaryImage != null)
                    {
                        var images = new List <MediaContent>()
                        {
                            new MediaContent {
                                Url     = primaryImage.LargeImage.URL,
                                Type    = "LARGE",
                                Caption = ChannelName,
                                Id      = 1
                            }
                        };

                        eProduct.Images = images;
                    }
                }

                // set the product' item dimension
                var itemDimensionNode = item.ItemAttributes.ItemDimensions;
                if (itemDimensionNode != null)
                {
                    var length     = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Length), parseDimensionUnit(itemDimensionNode.Length));
                    var width      = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Width), parseDimensionUnit(itemDimensionNode.Width));
                    var height     = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Height), parseDimensionUnit(itemDimensionNode.Height));
                    var itemWeight = new DecimalWithUnit(parseDimensionValue(itemDimensionNode.Weight), parseDimensionUnit(itemDimensionNode.Weight));
                    //eProduct.WeightBox1 = itemWeight.Value;
                    //eProduct.WeightBox1Unit = itemWeight.Unit;
                    eProduct.ItemDimension = new Dimension(length, width, height, itemWeight);
                }

                // the the product's package dimenstion
                var pkgDimensionNode = item.ItemAttributes.PackageDimensions;
                if (pkgDimensionNode != null)
                {
                    var length    = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Length), parseDimensionUnit(pkgDimensionNode.Length));
                    var width     = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Width), parseDimensionUnit(pkgDimensionNode.Width));
                    var height    = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Height), parseDimensionUnit(pkgDimensionNode.Height));
                    var pkgWeight = new DecimalWithUnit(parseDimensionValue(pkgDimensionNode.Weight), parseDimensionUnit(pkgDimensionNode.Weight));
                    //eProduct.WeightBox2 = pkgWeight.Value;
                    //eProduct.WeightBox2Unit = pkgWeight.Unit;
                    eProduct.PackageDimension = new Dimension(length, width, height, pkgWeight);
                }

                // get the condition type and leadtime ship of the prouduct
                if (item.Offers.Offer != null)
                {
                    var offerNode = item.Offers.Offer.FirstOrDefault();
                    eProduct.Condition = offerNode == null ? string.Empty : offerNode.OfferAttributes.Condition;
                }

                return(eProduct);
            }
            catch (Exception ex)
            {
                _logger.LogError(LogEntryType.AmazonProduct, "Error in parsing the product item -> " + EisHelper.GetExceptionMessage(ex), ex.StackTrace);
                return(null);
            }
        }