コード例 #1
0
        private void GetProductData(IEnumerable <Entry> entries)
        {
            using (berkeleyEntities dataContext = new berkeleyEntities())
            {
                _marketplace = dataContext.AmznMarketplaces.Single(p => p.ID == 1);

                foreach (Entry entry in entries)
                {
                    entry.UPC = dataContext.Items.Single(p => p.ItemLookupCode.Equals(entry.Sku)).GTIN;
                }
            }
        }
コード例 #2
0
        private MarketplaceView CreateMarketplaceView(AmznMarketplace marketplace)
        {
            MarketplaceView view = new MarketplaceView();

            view.ID               = "A-" + marketplace.ID;
            view.DbID             = marketplace.ID;
            view.Host             = "Amazon";
            view.Code             = marketplace.Code;
            view.ListingsLastSync = marketplace.ListingSyncTime.HasValue ? marketplace.ListingSyncTime.Value.ToLocalTime() : marketplace.ListingSyncTime;
            view.OrdersLastSync   = marketplace.OrderSyncTime.HasValue ? marketplace.OrderSyncTime.Value.ToLocalTime() : marketplace.OrderSyncTime;
            view.Name             = marketplace.Name;

            return(view);
        }
コード例 #3
0
        private void ImportAmznData(IEnumerable <MainEntry> entries)
        {
            using (berkeleyEntities dataContext = new berkeleyEntities())
            {
                BerkeleyEntities.Amazon.AmazonServices amznServices = new BerkeleyEntities.Amazon.AmazonServices();

                foreach (MainEntry entry in entries)
                {
                    Item item = dataContext.Items.Single(p => p.ItemLookupCode.Equals(entry.Sku));
                    entry.UPC = item.GTIN;
                }

                AmznMarketplace marketplace = dataContext.AmznMarketplaces.First();

                var entriesWithUPC = entries.Where(p => !string.IsNullOrEmpty(p.UPC));

                var results = amznServices.GetMatchingProductForId(marketplace.ID, entriesWithUPC.Select(p => p.UPC));

                foreach (var result in results)
                {
                    MainEntry entry = entriesWithUPC.First(p => p.UPC.Equals(result.Id));

                    if (result.IsSetProducts() && result.Products.IsSetProduct())
                    {
                        Product product = result.Products.Product.First();

                        foreach (var attributeSet in product.AttributeSets.Any.Cast <XmlElement>())
                        {
                            var nodes = attributeSet.ChildNodes.OfType <XmlNode>();

                            if (nodes.Any(p => p.LocalName.Equals("Feature")))
                            {
                                StringBuilder features = new StringBuilder();

                                features.Append("<ul>");

                                foreach (XmlNode node in nodes.Where(p => p.LocalName.Equals("Feature")))
                                {
                                    features.AppendFormat("<li>{0}</li>", node.InnerText);
                                }

                                features.Append("</ul>");

                                entry.AmznDescription = features.ToString();
                            }


                            if (nodes.Any(p => p.LocalName.Equals("Title")))
                            {
                                XmlNode node = nodes.Single(p => p.LocalName.Equals("Title"));

                                entry.AmznTitle = node.InnerText;
                            }
                        }
                    }
                }

                foreach (MainEntry entry in entries)
                {
                    Item item = dataContext.Items.Single(p => p.ItemLookupCode.Equals(entry.Sku));

                    AmznListingItem listingItem = item.AmznListingItems.FirstOrDefault();

                    if (listingItem != null)
                    {
                        entry.Asin = listingItem.ASIN;
                    }
                }

                var competitivePriceResults = amznServices.GetLowestOfferListingsForAsin(marketplace.ID, entries.Where(p => !string.IsNullOrWhiteSpace(p.Asin)).Select(p => p.Asin));

                foreach (var result in competitivePriceResults)
                {
                    MainEntry entry = entries.Where(p => p.Asin != null).First(p => p.Asin.Equals(result.ASIN));

                    if (result.IsSetProduct() && result.Product.IsSetLowestOfferListings() && result.Product.LowestOfferListings.IsSetLowestOfferListing())
                    {
                        var competitivePrice = result.Product.LowestOfferListings.LowestOfferListing.First();
                        entry.AmznPrice = competitivePrice.Price.LandedPrice.Amount;
                    }
                }
            }
        }
コード例 #4
0
 public AmznPublishCommand(string marketplaceCode)
 {
     _marketplace = _dataContext.AmznMarketplaces.Single(p => p.Code.Equals(marketplaceCode));
 }
コード例 #5
0
 public ListingMapper(berkeleyEntities dataContext, AmznMarketplace marketplace)
 {
     _dataContext          = dataContext;
     _marketplace          = marketplace;
     _productMapperFactory = new ProductMapperFactory();
 }