private MarketplaceView CreateMarketplaceView(EbayMarketplace marketplace)
        {
            MarketplaceView view = new MarketplaceView();

            view.ID               = "E-" + marketplace.ID;
            view.DbID             = marketplace.ID;
            view.Host             = "Ebay";
            view.Code             = marketplace.Code;
            view.ListingsLastSync = marketplace.ListingSyncTime.HasValue ? marketplace.ListingSyncTime.Value.ToLocalTime() : marketplace.ListingSyncTime;
            view.OrdersLastSync   = marketplace.OrdersSyncTime.HasValue ? marketplace.OrdersSyncTime.Value.ToLocalTime() : marketplace.OrdersSyncTime;
            view.Name             = marketplace.Name;

            return(view);
        }
        private void PublishEntries(IEnumerable <EbayEntry> entries)
        {
            var pendingEntries = entries.Cast <EbayEntry>();

            using (_dataContext = new berkeleyEntities())
            {
                _marketplace = _dataContext.EbayMarketplaces.Single(p => p.Code.Equals(_marketplaceCode));

                var update = entries.Where(p => !string.IsNullOrWhiteSpace(p.Code)).GroupBy(p => p.Code);

                foreach (var entryGroup in update)
                {
                    EbayListing listing = _marketplace.Listings.Single(p => p.Code.Equals(entryGroup.Key));

                    TryUpdateListing(listing, entryGroup);
                }

                var pendingCreate = entries.Where(p => string.IsNullOrWhiteSpace(p.Code));

                var individuals = pendingCreate.Where(p => !p.IsVariation());
                var variations  = pendingCreate.Where(p => p.IsVariation()).GroupBy(p => p.ClassName);

                foreach (var entryGroup in variations)
                {
                    TryCreateListing(entryGroup, true);
                }

                foreach (var entry in individuals)
                {
                    TryCreateListing(new List <EbayEntry>()
                    {
                        entry
                    }, false);
                }
            }
        }
Beispiel #3
0
 public OrderSynchronizer(EbayMarketplace marketplace, berkeleyEntities dataContext)
 {
     _marketplace = marketplace;
     _dataContext = dataContext;
 }