コード例 #1
0
        public void SubmitPrice(Magento20MarketApi api)
        {
            var sync = new MagentoItemsSync(api,
                                            _dbFactory,
                                            _log,
                                            _time);

            sync.SendPriceUpdates();
        }
コード例 #2
0
        public void SyncAttributeOptions(Magento20MarketApi api)
        {
            var sync = new MagentoItemsSync(api,
                                            _dbFactory,
                                            _log,
                                            _time);

            sync.SyncAttributeOptions();
        }
コード例 #3
0
 public UpdateMagentoOrderDataThread(Magento20MarketApi api,
                                     long companyId,
                                     ISystemMessageService messageService,
                                     TimeSpan?callbackInterval,
                                     TimeSpan betweenProcessingInverval)
     : base("UpdateMagento" + api.MarketplaceId + "OrderData", companyId, messageService, callbackInterval)
 {
     _api = api;
     _betweenProcessingInverval = betweenProcessingInverval;
 }
コード例 #4
0
        public void SubmitParentItems(Magento20MarketApi api, IList <string> skuList)
        {
            var sync = new MagentoItemsSync(api,
                                            _dbFactory,
                                            _log,
                                            _time);

            IList <int> itemIdList = null;

            if (skuList != null)
            {
                using (var db = _dbFactory.GetRWDb())
                {
                    var query = from pi in db.ParentItems.GetAll()
                                where pi.Market == (int)MarketType.Magento &&
                                skuList.Contains(pi.ASIN)
                                select pi;

                    itemIdList = query.Select(i => i.Id).ToList();
                }
            }
            else
            {
                using (var db = _dbFactory.GetRDb())
                {
                    itemIdList = db.ParentItems.GetAll()
                                 .Where(i => i.Market == (int)MarketType.Magento)
                                 .OrderBy(i => i.Id)
                                 .Select(i => i.Id)
                                 .ToList();
                }
            }


            _log.Info("ParentItems to update=" + itemIdList?.Count);
            //itemIdList = itemIdList.Skip(400).ToList();

            sync.SendParentItemUpdates(itemIdList);
        }
コード例 #5
0
        public void SubmitItems(Magento20MarketApi api, IList <string> styleList)
        {
            var sync = new MagentoItemsSync(api,
                                            _dbFactory,
                                            _log,
                                            _time);

            IList <int> itemIdList = null;

            //using (var db = _dbFactory.GetRDb())
            //{
            //    //var styleIdList = db.StyleFeatureValues.GetAll().Select(fv => fv.StyleId).ToList();
            //    var fromDate = DateTime.Today.AddHours(13);
            //    var styleIdList = db.Styles.GetAll().Where(st => st.StyleID == "Citizen EM0420-54D")
            //        .Select(st => st.Id)
            //        .ToList();
            //        //db.Styles.GetAll().Where(st => st.LiteCountingDate > fromDate).Select(st => st.Id).ToList();
            //    itemIdList = db.Items.GetAll()
            //        .Where(i => i.StyleId.HasValue &&
            //            styleIdList.Contains(i.StyleId.Value) &&
            //            (i.ItemPublishedStatus == (int)PublishedStatuses.Published
            //            || i.ItemPublishedStatus == (int)PublishedStatuses.New
            //            || i.ItemPublishedStatus == (int)PublishedStatuses.PublishingErrors
            //            || i.ItemPublishedStatus == (int)PublishedStatuses.HasChanges) &&
            //            //i.ItemPublishedStatusDate < fromDate &&
            //            i.Market == (int)MarketType.Magento)
            //        .Select(i => i.Id).ToList();
            //}

            if (styleList != null)
            {
                using (var db = _dbFactory.GetRWDb())
                {
                    var query = from i in db.Items.GetAll()
                                join l in db.Listings.GetAll() on i.Id equals l.ItemId
                                join st in db.Styles.GetAll() on i.StyleId equals st.Id
                                where l.Market == (int)MarketType.Magento &&
                                styleList.Contains(st.StyleID)
                                select i;

                    //var query = from i in db.Items.GetAll()
                    //            join st in db.Styles.GetAll() on i.StyleId equals st.Id
                    //            where i.Market == (int)MarketType.Magento
                    //                && st.DropShipperId == DSHelper.UltraluxId
                    //            select i;

                    itemIdList = query.Select(i => i.Id).ToList();
                }
            }
            else
            {
                using (var db = _dbFactory.GetRDb())
                {
                    itemIdList = db.Items.GetAll()
                                 .Where(i => i.Market == (int)MarketType.Magento)
                                 .OrderBy(i => i.Id)
                                 .Select(i => i.Id)
                                 .ToList();
                }
            }


            _log.Info("Items to update=" + itemIdList?.Count);
            //itemIdList = itemIdList.Skip(400).ToList();

            sync.SendItemUpdates(itemIdList);
        }
コード例 #6
0
        public void Setup()
        {
            Database.SetInitializer <AmazonContext>(null);
            XmlConfigurator.Configure(new FileInfo(AppSettings.log4net_Config));

            _dbFactory = new DbFactory();
            _time      = new TimeService(_dbFactory);
            _settings  = new SettingsService(_dbFactory);

            _styleHistoryService = new StyleHistoryService(_log, _time, _dbFactory);
            _styleManager        = new StyleManager(_log, _time, _styleHistoryService);
            _actionService       = new SystemActionService(_log, _time);
            _quantityManager     = new QuantityManager(_log, _time);
            _priceManager        = new PriceManager(_log, _time, _dbFactory, _actionService, _settings);
            _cacheService        = new CacheService(_log, _time, _actionService, _quantityManager);
            _barcodeService      = new BarcodeService(_log, _time, _dbFactory);
            _weightService       = new WeightService();

            IEmailSmtpSettings smtpSettings = new EmailSmtpSettings();

            using (var db = new UnitOfWork())
            {
                _company = db.Companies.GetFirstWithSettingsAsDto();

                if (AppSettings.IsDebug)
                {
                    smtpSettings = SettingsBuilder.GetSmtpSettingsFromAppSettings();
                }
                else
                {
                    smtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
                }

                _addressService = AddressService.Default;
                _emailService   = new EmailService(_log, smtpSettings, _addressService);

                //todo check itemHist
                _autoCreateNonameListingService = new AutoCreateNonameListingService(_log,
                                                                                     _time,
                                                                                     _dbFactory,
                                                                                     _cacheService,
                                                                                     _barcodeService,
                                                                                     _emailService, null,
                                                                                     AppSettings.IsDebug);

                var marketplaces = new MarketplaceKeeper(_dbFactory, true);
                marketplaces.Init();

                var shipmentPrividers = db.ShipmentProviders.GetByCompanyId(_company.Id);

                var apiFactory = new MarketFactory(marketplaces.GetAll(), _time, _log, _dbFactory, AppSettings.JavaPath);

                var weightService = new WeightService();

                var serviceFactory = new ServiceFactory();
                var rateProviders  = serviceFactory.GetShipmentProviders(_log,
                                                                         _time,
                                                                         _dbFactory,
                                                                         weightService,
                                                                         shipmentPrividers,
                                                                         null,
                                                                         null,
                                                                         null,
                                                                         null);

                _magentoApi    = (Magento20MarketApi)apiFactory.GetApi(_company.Id, MarketType.Magento, MarketplaceKeeper.ShopifyDWS);
                _shopifyDWSApi = (ShopifyApi)apiFactory.GetApi(_company.Id, MarketType.Shopify, MarketplaceKeeper.ShopifyDWS);
                _eBayApi       = (eBayApi)apiFactory.GetApi(_company.Id, MarketType.eBay, "");
                _amazonApi     = (AmazonApi)apiFactory.GetApi(_company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId);
                _walmartApi    = (WalmartApi)apiFactory.GetApi(_company.Id, MarketType.Walmart, "");
            }
        }