Beispiel #1
0
        protected override void RunCallback()
        {
            var dbFactory     = new DbFactory();
            var time          = new TimeService(dbFactory);
            var settings      = new SettingsService(dbFactory);
            var log           = GetLogger();
            var actionService = new SystemActionService(log, time);

            var lastSyncDate = settings.GetOrdersCancellationDate(_api.Market, _api.MarketplaceId);

            _api.Connect();

            using (var db = dbFactory.GetRWDb())
            {
                LogWrite("Last sync date=" + lastSyncDate);

                if (!lastSyncDate.HasValue ||
                    (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
                {
                    var updater = new GrouponOrderCancellation(_api, actionService, log, time);
                    updater.ProcessCancellations(db);
                    settings.SetOrdersCancellationtDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
                }
            }
        }
Beispiel #2
0
        protected override void RunCallback()
        {
            var        dbFactory = new DbFactory();
            CompanyDTO company   = null;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var time           = new TimeService(dbFactory);
            var addressService = AddressService.Default;

            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);

            var emailService  = new EmailService(GetLogger(), emailSmtpSettings, addressService);
            var actionService = new SystemActionService(GetLogger(), time);

            emailService.ProcessEmailActions(dbFactory,
                                             time,
                                             company,
                                             actionService);

            emailService.AutoAnswerEmails(dbFactory,
                                          time,
                                          company);
        }
        public void PrintActionProcessing()
        {
            var orderHistoryService = new OrderHistoryService(_log, _time, _dbFactory);
            var batchManager        = new BatchManager(_log, _time, orderHistoryService, _weightService);
            var actionService       = new SystemActionService(_log, _time);
            var serviceFactory      = new ServiceFactory();

            var labelBatchService = new LabelBatchService(_dbFactory,
                                                          actionService,
                                                          _log,
                                                          _time,
                                                          _weightService,
                                                          serviceFactory,
                                                          _emailService,
                                                          batchManager,
                                                          _pdfMaker,
                                                          AddressService.Default,
                                                          orderHistoryService,
                                                          AppSettings.DefaultCustomType,
                                                          AppSettings.LabelDirectory,
                                                          AppSettings.ReserveDirectory,
                                                          AppSettings.TemplateDirectory,
                                                          new LabelBatchService.Config(),
                                                          AppSettings.IsSampleLabels);

            labelBatchService.ProcessPrintBatchActions(null);
        }
        public void RePrintBatch(long batchId)
        {
            var actionService       = new SystemActionService(_log, _time);
            var serviceFactory      = new ServiceFactory();
            var orderHistoryService = new OrderHistoryService(_log, _time, _dbFactory);
            var batchManager        = new BatchManager(_log, _time, orderHistoryService, _weightService);

            var batchService = new LabelBatchService(_dbFactory,
                                                     actionService,
                                                     _log,
                                                     _time,
                                                     _weightService,
                                                     serviceFactory,
                                                     _emailService,
                                                     batchManager,
                                                     _pdfMaker,
                                                     AddressService.Default,
                                                     orderHistoryService,
                                                     AppSettings.DefaultCustomType,
                                                     AppSettings.LabelDirectory,
                                                     AppSettings.ReserveDirectory,
                                                     AppSettings.TemplateDirectory,
                                                     new LabelBatchService.Config(),
                                                     AppSettings.IsSampleLabels);

            var result = batchService.PrintBatch(batchId, _company.Id, null);

            _log.Info("Success: " + result.Success.ToString());
        }
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();

            var now = time.GetAppNowTime();

            if (!time.IsBusinessDay(now))
            {
                return;
            }

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress     = new CompanyAddressService(company);
            var quantityManager    = new QuantityManager(log, time);
            var actionService      = new SystemActionService(log, time);
            var addressService     = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            var emailSmtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService       = new EmailService(GetLogger(), emailSmtpSettings, addressService);
            var cacheService       = new CacheService(log, time, actionService, quantityManager);
            var barcodeService     = new BarcodeService(log, time, dbFactory);
            var itemHistoryService = new ItemHistoryService(log, time, dbFactory);

            var autoCreateWMListingService = new AutoCreateWalmartListingService(log,
                                                                                 time,
                                                                                 dbFactory,
                                                                                 cacheService,
                                                                                 barcodeService,
                                                                                 emailService,
                                                                                 null,
                                                                                 itemHistoryService,
                                                                                 AppSettings.IsDebug);
            var autoCreateEBayListingService = new AutoCreateEBayListingService(log,
                                                                                time,
                                                                                dbFactory,
                                                                                cacheService,
                                                                                barcodeService,
                                                                                emailService,
                                                                                itemHistoryService,
                                                                                AppSettings.IsDebug);
            var autoCreateAmazonUSPrimeService = new AutoCreateAmazonUSPrimeListingService(log,
                                                                                           time,
                                                                                           dbFactory,
                                                                                           itemHistoryService);

            //autoCreateWMListingService.CreateListings();
            //log.Info("Walmart listings were created");

            //autoCreateEBayListingService.CreateListings();
            //log.Info("eBay listings were created");

            autoCreateAmazonUSPrimeService.CreateListings();
            log.Info("Amazon US Prime listings were created");
        }
Beispiel #6
0
        protected override void RunCallback()
        {
            var dbFactory     = new DbFactory();
            var time          = new TimeService(dbFactory);
            var log           = GetLogger();
            var settings      = new SettingsService(dbFactory);
            var actionService = new SystemActionService(GetLogger(), time);

            var lastSyncDate = settings.GetOrdersCancellationDate(_api.Market, _api.MarketplaceId);

            LogWrite("Last sync date=" + lastSyncDate);

            if (!lastSyncDate.HasValue ||
                (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
            {
                var updater = new AcknowledgementDataUpdater(actionService,
                                                             log,
                                                             time,
                                                             dbFactory);
                var unprocessedFeed = updater.GetUnprocessedFeedId(_api.MarketplaceId);
                if (unprocessedFeed != null)
                {
                    LogWrite("Update unprocessed feed");
                    updater.UpdateSubmittedFeed(_api,
                                                unprocessedFeed,
                                                AppSettings.FulfillmentResponseDirectory);
                }
                else
                {
                    LogWrite("Submit new feed");
                    updater.SubmitFeed(_api, CompanyId, null, AppSettings.FulfillmentRequestDirectory);
                    settings.SetOrdersCancellationtDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
                }
            }
        }
Beispiel #7
0
        public void TestProcessSampleRemoveSignConfirmationEmail()
        {
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromAppSettings();
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessingService = new EmailProcessingService(
                _log,
                _dbFactory,
                emailService,
                actionService,
                _company,
                _time);

            var matchingResults = new List <EmailReadingResult>()
            {
                new EmailReadingResult()
                {
                    Email = new EmailDTO()
                    {
                        Message = "Remove signature confirmation",
                    },
                    MatchedIdList = new string[] { "701-3624993-3494603" }
                }
            };

            IList <IEmailRule> rules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
            };

            emailProcessingService.ProcessEmails(matchingResults, rules);
        }
Beispiel #8
0
        public void ReadInboxEmails()
        {
            var imapSettings  = SettingsBuilder.GetImapSettingsFromCompany(_company);
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessing = new EmailProcessingService(_log, _dbFactory,
                                                             emailService,
                                                             actionService,
                                                             _company,
                                                             _time);

            IList <IEmailRule> inboxRules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
                new SetAnswerIdEmailRule(_log, _time), //NOTE: also using in Inbox for processing Amazon autocommunicate emails
                //new FeedbackBlackListEmailRule(_log, _time),
                new ReturnRequestEmailRule(_log, _time, emailService, actionService, _company, true, false),
                new OrderDeliveryInquiryEmailRule(_log, _time, emailService, actionService),
                new AddressNotChangedEmailRule(_log, _time, emailService, actionService),
                //new DhlInvoiceEmailRule(_log, _time, _dbFactory),
                //new AddCommentEmailRule(_log, actionService, _time),
                new PrepareBodyEmailRule(_log, _time),
            };

            var email = new EmailReaderService(imapSettings, _log, _dbFactory, _time);

            email.ReadEmails(EmailHelper.InboxFolder, DateTime.Now.AddDays(-5), imapSettings.AcceptingToAddresses, null, null);
            emailProcessing.ProcessEmails(email.EmailProcessResultList, inboxRules);
        }
Beispiel #9
0
        protected override void RunCallback()
        {
            CompanyDTO company   = null;
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        settings  = new SettingsService(dbFactory);
            var        log       = GetLogger();

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var companyAddress    = new CompanyAddressService(company);
            var addressService    = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);

            var actionService = new SystemActionService(log, time);
            var emailService  = new EmailService(log, emailSmtpSettings, addressService);

            var lastSyncDate = settings.GetOrdersAdjustmentDate(_api.Market, _api.MarketplaceId);

            using (var db = dbFactory.GetRWDb())
            {
                LogWrite("Last sync date=" + lastSyncDate);

                if (!lastSyncDate.HasValue ||
                    (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
                {
                    var updater = new BaseOrderRefundService(_api, actionService, emailService, log, time);
                    updater.ProcessRefunds(db, null);
                    settings.SetOrdersAdjustmentDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
                }
            }
        }
Beispiel #10
0
        protected override void RunCallback()
        {
            var dbFactory       = new DbFactory();
            var time            = new TimeService(dbFactory);
            var settings        = new SettingsService(dbFactory);
            var actionService   = new SystemActionService(GetLogger(), time);
            var quantityManager = new QuantityManager(GetLogger(), time);
            var cache           = new CacheService(GetLogger(), time, actionService, quantityManager);

            using (var db = dbFactory.GetRWDb())
            {
                db.DisableValidation();

                var lastUpdate    = settings.GetCacheUpdateDate();
                var updateInteval = settings.CacheUpdateInteval;

                if (lastUpdate + updateInteval < time.GetUtcTime())
                {
                    //Full update
                    if (cache.UpdateDbCacheUsingSettings(db, settings))
                    {
                        settings.SetCacheUpdateDate(time.GetUtcTime());
                    }
                    else
                    {
                        GetLogger().Fatal("Cache updating fails");
                    }
                }
                else
                {
                    //Process cache update actions
                    cache.ProcessUpdateCacheActions(db);
                }
            }
        }
Beispiel #11
0
        public void ReadSentEmails()
        {
            var imapSettings  = SettingsBuilder.GetImapSettingsFromCompany(_company);
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromCompany(_company);
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var emailProcessing = new EmailProcessingService(_log, _dbFactory,
                                                             emailService,
                                                             actionService,
                                                             _company,
                                                             _time);

            IList <IEmailRule> sentRules = new List <IEmailRule>()
            {
                new SetSystemTypesEmailRule(_log, _time),
                new AddMatchIdsEmailRule(_log, _time),
                new SetAnswerIdEmailRule(_log, _time),
                new SetSentByEmailRule(_log, _time)
            };

            var email = new EmailReaderService(imapSettings, _log, _dbFactory, _time);

            email.ReadEmails(EmailHelper.SentFolder, DateTime.Now.AddDays(-15), null, imapSettings.AcceptingToAddresses, null);
            emailProcessing.ProcessEmails(email.EmailProcessResultList, sentRules);
        }
        public void UpdateUSPSTrackOrders()
        {
            while (true)
            {
                using (var db = new UnitOfWork(_log))
                {
                    var service             = new UpdateOrderTrackingStatus(_company.Id, null, TimeSpan.FromSeconds(10));
                    var actionService       = new SystemActionService(_log, _time);
                    var dbFactory           = new DbFactory();
                    var notificationService = new NotificationService(_log, _time, dbFactory);
                    var companyAddress      = new CompanyAddressService(_company);
                    var addressService      = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
                    var ruleList            = new List <ITrackingRule>()
                    {
                    };

                    var trackingService = new TrackingManager(_log, actionService, addressService, _emailService, _time, ruleList);

                    var uspsTrackingProvider = new ComposedUspsAndCanadaPostTrackingProvider(_log, _time, _company.USPSUserId, _company.CanadaPostKeys);

                    service.UpdateAllShippedOrderStatus(trackingService,
                                                        _time,
                                                        db,
                                                        uspsTrackingProvider,
                                                        _company);
                }
                Thread.Sleep(TimeSpan.FromMinutes(0));
            }
        }
        protected override void RunCallback()
        {
            var dbFactory          = new DbFactory();
            var time               = new TimeService(dbFactory);
            var log                = GetLogger();
            var settings           = new SettingsService(dbFactory);
            var systemAction       = new SystemActionService(log, time);
            var itemHistoryService = new ItemHistoryService(log, time, dbFactory);
            var lastSyncDate       = settings.GetListingsReadDate(_api.Market, _api.MarketplaceId);

            LogWrite("Last sync date=" + lastSyncDate);

            var walmartReader = new WalmartListingInfoReader(GetLogger(),
                                                             time,
                                                             _api,
                                                             dbFactory,
                                                             systemAction,
                                                             itemHistoryService,
                                                             AppSettings.WalmartReportBaseDirectory,
                                                             AppSettings.WalmartFeedBaseDirectory);

            if (!lastSyncDate.HasValue ||
                (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
            {
                walmartReader.UpdateListingInfo();
                walmartReader.ReadListingInventory();

                walmartReader.ResetQtyForNotExistListings();
                walmartReader.RetireNotExistListings();

                settings.SetListingsReadDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
            }
        }
Beispiel #14
0
        public CallRateProcessing(
            CompanyDTO company,
            ILogService log,
            IDbFactory dbFactory,
            ITime time)
        {
            _company       = company;
            _log           = log;
            _time          = time;
            _dbFactory     = dbFactory;
            _weightService = new WeightService();

            var messageService = new SystemMessageService(log, time, dbFactory);
            var serviceFactory = new ServiceFactory();
            var actionService  = new SystemActionService(log, time);
            var rateProviders  = serviceFactory.GetShipmentProviders(log,
                                                                     time,
                                                                     dbFactory,
                                                                     _weightService,
                                                                     company.ShipmentProviderInfoList,
                                                                     null,
                                                                     null,
                                                                     null,
                                                                     null);

            _rateService = new RateService(dbFactory,
                                           log,
                                           time,
                                           _weightService,
                                           messageService,
                                           company,
                                           actionService,
                                           rateProviders);
        }
Beispiel #15
0
        public void TestProcessSampleReturnRequestEmail()
        {
            var smtpSettings  = SettingsBuilder.GetSmtpSettingsFromAppSettings();
            var emailService  = new EmailService(_log, smtpSettings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            var rule = new ReturnRequestEmailRule(_log, _time, emailService, actionService, _company, false, true);

            using (var db = _dbFactory.GetRWDb())
            {
                var email = db.Emails.Get(4687);

                var matchingResult = new EmailReadingResult()
                {
                    Email = new EmailDTO()
                    {
                        Subject = email.Subject,
                        Message = email.Message,
                    },
                    Status        = EmailMatchingResultStatus.New,
                    MatchedIdList = new string[] { "002-1602056-5981826" }
                };

                rule.Process(db, matchingResult);
            }
        }
        public void ReProcessTrackInfoFull(IDbFactory dbFactory, string trackingNumber)
        {
            using (var db = dbFactory.GetRWDb())
            {
                var shippings = db.Orders.GetUnDeliveredShippingInfoes(_time.GetUtcTime(), false, null)
                                .Where(o => o.TrackingNumber == trackingNumber)
                                .OrderByDescending(o => o.OrderDate)
                                .ToList();

                shippings.AddRange(db.Orders.GetUnDeliveredMailInfoes(_time.GetUtcTime(), false, null)
                                   .Where(o => o.TrackingNumber == trackingNumber)
                                   .OrderByDescending(o => o.OrderDate)
                                   .ToList());

                var actionService       = new SystemActionService(_log, _time);
                var companyAddress      = new CompanyAddressService(_company);
                var addressService      = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
                var notificationService = new NotificationService(_log, _time, dbFactory);

                var ruleList = new List <ITrackingRule>()
                {
                    new NeverShippedTrackingRule(_log, notificationService, _time),
                    new GetStuckTrackingRule(_log, notificationService, _time),
                    new NoticeLeftTrackingRule(_log, actionService, addressService, _time),
                    //new UndeliverableAsAddressedTrackingRule(_log, actionService, addressService, _emailService, _time)
                };

                var trackingService = new TrackingManager(_log,
                                                          actionService,
                                                          addressService,
                                                          _emailService,
                                                          _time,
                                                          ruleList);

                var trackingProvider = new ComposedUspsAndCanadaPostTrackingProvider(_log, _time, _company.USPSUserId, _company.CanadaPostKeys);

                var fedexInfo             = _company.ShipmentProviderInfoList.FirstOrDefault(sh => sh.Type == (int)ShipmentProviderType.FedexGeneral);
                var fedexTrackingProvider = new FedexTrackingApi(_log,
                                                                 _time,
                                                                 fedexInfo.EndPointUrl,
                                                                 fedexInfo.UserName,
                                                                 fedexInfo.Password,
                                                                 fedexInfo.Key1,
                                                                 fedexInfo.Key2,
                                                                 fedexInfo.Key3,
                                                                 _company.ShortName);

                //var dhlInfo = _company.ShipmentProviderInfoList.FirstOrDefault(sh => sh.Type == (int)ShipmentProviderType.Dhl);
                //var trackingProvider = new DhlTrackingProvider(_log,
                //    _time,
                //    dhlInfo.EndPointUrl,
                //    dhlInfo.UserName,
                //    dhlInfo.Password,
                //    dhlInfo.Key1);

                trackingService.UpdateOrderTracking(db, _company, shippings, fedexTrackingProvider);
            }
        }
Beispiel #17
0
 public void CallCompleteReturns(JetApi api)
 {
     using (var db = _dbFactory.GetRWDb())
     {
         var actionService = new SystemActionService(_log, _time);
         var service       = new BaseOrderRefundService(api, actionService, _emailService, _log, _time);
         service.ProcessRefunds(db, null);
     }
 }
        public void ReProcessTrackNotifications(IDbFactory dbFactory)
        {
            var from      = _time.GetAppNowTime().AddDays(-42); //NOTE: Possible/not sure: After 42 days USPS not update/keep info
            var orderFrom = _time.GetAppNowTime().AddDays(-90);

            using (var db = dbFactory.GetRWDb())
            {
                var shippings = db.Orders.GetUnDeliveredShippingInfoes(_time.GetUtcTime(), false, null)
                                .Where(o => (!o.TrackingStateDate.HasValue || o.TrackingStateDate.Value > from) &&
                                       o.OrderDate > orderFrom)
                                .OrderBy(o => o.OrderDate)
                                .ToList();

                shippings.AddRange(db.Orders.GetUnDeliveredMailInfoes(_time.GetUtcTime(), false, null)
                                   .Where(o => (!o.TrackingStateDate.HasValue || o.TrackingStateDate.Value > from) &&
                                          o.OrderDate > orderFrom)
                                   .OrderBy(o => o.OrderDate)
                                   .ToList());

                var actionService       = new SystemActionService(_log, _time);
                var companyAddress      = new CompanyAddressService(_company);
                var addressService      = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty()));
                var notificationService = new NotificationService(_log, _time, dbFactory);

                var ruleList = new List <ITrackingRule>()
                {
                    //new NeverShippedTrackingRule(_log, notificationService, _time),
                    //new GetStuckTrackingRule(_log, notificationService, _time),
                    //new NoticeLeftTrackingRule(actionService, _log)
                };

                var trackingService = new TrackingManager(_log,
                                                          actionService,
                                                          addressService,
                                                          _emailService,
                                                          _time,
                                                          ruleList);


                foreach (var shipping in shippings)
                {
                    trackingService.CheckRules(db,
                                               shipping,
                                               shipping.TrackingStateEvent,
                                               shipping.TrackingStateDate,
                                               new List <TrackingRecord>()
                    {
                        new TrackingRecord()
                        {
                            Date    = shipping.TrackingStateDate,
                            Message = shipping.TrackingStateEvent,
                        }
                    },
                                               ruleList);
                }
            }
        }
Beispiel #19
0
        protected override void RunCallback()
        {
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();
            CompanyDTO company;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var weightService  = new WeightService();
            var messageService = new SystemMessageService(log, time, dbFactory);

            var serviceFactory  = new ServiceFactory();
            var quantityManager = new QuantityManager(log, time);
            var rateProviders   = serviceFactory.GetShipmentProviders(log,
                                                                      time,
                                                                      dbFactory,
                                                                      weightService,
                                                                      company.ShipmentProviderInfoList,
                                                                      null,
                                                                      null,
                                                                      null,
                                                                      null);

            var actionService = new SystemActionService(log, time);

            var commentService = new OrderCommentService(dbFactory,
                                                         log,
                                                         time,
                                                         actionService);

            commentService.ProcessSystemAction();

            var rateService = new RateService(dbFactory,
                                              log,
                                              time,
                                              weightService,
                                              messageService,
                                              company,
                                              actionService,
                                              rateProviders);

            rateService.ProcessSystemAction(CancellationToken);


            var quantityDistribution = new QuantityDistributionService(dbFactory,
                                                                       quantityManager,
                                                                       log,
                                                                       time,
                                                                       QuantityDistributionHelper.GetDistributionMarkets(),
                                                                       DistributeMode.None);

            quantityDistribution.ProcessSystemAction(actionService);
        }
Beispiel #20
0
        public void CallProcessCancellations()
        {
            using (var db = _dbFactory.GetRWDb())
            {
                var actionService = new SystemActionService(_log, _time);

                var service = new WalmartOrderCancellation(_walmartCAApi, actionService, _log, _time);
                service.ProcessCancellations(db);
            }
        }
Beispiel #21
0
        public void CallProcessReturns()
        {
            using (var db = _dbFactory.GetRWDb())
            {
                var actionService = new SystemActionService(_log, _time);

                var service = new JetOrderReturn(_jetApi, actionService, _emailService, _log, _time);
                service.ProcessReturns(db);
            }
        }
Beispiel #22
0
        public void ProcessCancellation(WalmartApi api)
        {
            var actionService = new SystemActionService(_log, _time);
            var updater       = new WalmartOrderCancellation(api, actionService, _log, _time);

            using (var db = _dbFactory.GetRWDb())
            {
                updater.ProcessCancellations(db);
            }
        }
Beispiel #23
0
        public void CallProcessRefunds(string tag)
        {
            using (var db = _dbFactory.GetRWDb())
            {
                var actionService = new SystemActionService(_log, _time);

                var service = new BaseOrderRefundService(_walmartCAApi, actionService, _emailService, _log, _time);
                service.ProcessRefunds(db, tag);
            }
        }
Beispiel #24
0
        public void SendEmails()
        {
            var settings      = SettingsBuilder.GetSmtpSettingsFromAppSettings();
            var email         = new EmailService(_log, settings, _addressService);
            var actionService = new SystemActionService(_log, _time);

            email.ProcessEmailActions(_dbFactory,
                                      _time,
                                      _company,
                                      actionService);
        }
Beispiel #25
0
        public IList <DTOOrder> GetRecentByDropShipperId(long dropShipperId)
        {
            var baseLog       = LogManager.GetLogger("RequestLogger");
            var log           = new FileLogService(baseLog, null);
            var dbFactory     = new DbFactory();
            var time          = new TimeService(dbFactory);
            var actionService = new SystemActionService(log, time);
            var orderHistory  = new OrderHistoryService(log, time, dbFactory);

            var dsService = new DropShipperApiService(log, time, dbFactory, actionService, orderHistory);

            return(dsService.GetRecentByDropShipperId(dropShipperId));
        }
Beispiel #26
0
        public IList <StyleEntireDto> GetQuantities(int market, string marketplaceId)
        {
            var baseLog       = LogManager.GetLogger("RequestLogger");
            var log           = new FileLogService(baseLog, null);
            var dbFactory     = new DbFactory();
            var time          = new TimeService(dbFactory);
            var actionService = new SystemActionService(log, time);
            var orderHistory  = new OrderHistoryService(log, time, dbFactory);

            var dsService = new DropShipperApiService(log, time, dbFactory, actionService, orderHistory);

            return(dsService.GetQuantities((MarketType)market, marketplaceId));
        }
Beispiel #27
0
        public CallResult UpdateShipments(DTOOrder order)
        {
            var baseLog       = LogManager.GetLogger("RequestLogger");
            var log           = new FileLogService(baseLog, null);
            var dbFactory     = new DbFactory();
            var time          = new TimeService(dbFactory);
            var actionService = new SystemActionService(log, time);
            var orderHistory  = new OrderHistoryService(log, time, dbFactory);

            var dsService = new DropShipperApiService(log, time, dbFactory, actionService, orderHistory);

            return(dsService.UpdateShipments(order));
        }
        protected override void RunCallback()
        {
            var dbFactory           = new DbFactory();
            var time                = new TimeService(dbFactory);
            var log                 = GetLogger();
            var actionService       = new SystemActionService(GetLogger(), time);
            var orderHistoryService = new OrderHistoryService(log, time, dbFactory);
            var serviceFactory      = new ServiceFactory();
            var weightService       = new WeightService();
            var pdfMaker            = new PdfMakerByIText(GetLogger());
            var batchManager        = new BatchManager(log, time, orderHistoryService, weightService);

            CompanyDTO company = null;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var addressService    = AddressService.Default;
            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var emailService      = new EmailService(GetLogger(), emailSmtpSettings, addressService);


            var labelBatchService = new LabelBatchService(dbFactory,
                                                          actionService,
                                                          GetLogger(),
                                                          time,
                                                          weightService,
                                                          serviceFactory,
                                                          emailService,
                                                          batchManager,
                                                          pdfMaker,
                                                          addressService,
                                                          orderHistoryService,
                                                          AppSettings.DefaultCustomType,
                                                          AppSettings.LabelDirectory,
                                                          AppSettings.ReserveDirectory,
                                                          AppSettings.TemplateDirectory,
                                                          new LabelBatchService.Config()
            {
                PrintErrorsToEmails = new[] { company.SellerEmail, company.SellerWarehouseEmailAddress },
                PrintErrorsCCEmails = new[] { EmailHelper.RaananEmail, EmailHelper.SupportDgtexEmail },
            },
                                                          AppSettings.IsSampleLabels);

            labelBatchService.ProcessPrintBatchActions(null);
        }
        protected override void RunCallback()
        {
            var        dbFactory = new DbFactory();
            var        time      = new TimeService(dbFactory);
            var        log       = GetLogger();
            CompanyDTO company;

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            var addressService    = AddressService.Default;
            var actionService     = new SystemActionService(log, time);
            var settings          = new SettingsService(dbFactory);
            var emailService      = new EmailService(log, emailSmtpSettings, addressService);

            var lastSyncDate = settings.GetOrdersAdjustmentDate(_api.Market, _api.MarketplaceId);

            LogWrite("Last sync date=" + lastSyncDate);

            if (!lastSyncDate.HasValue ||
                (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
            {
                var updater = new AdjustmentDataUpdater(actionService,
                                                        emailService,
                                                        log,
                                                        time,
                                                        dbFactory);
                var unprocessedFeed = updater.GetUnprocessedFeedId(_api.MarketplaceId);
                if (unprocessedFeed != null)
                {
                    LogWrite("Update unprocessed feed");
                    updater.UpdateSubmittedFeed(_api,
                                                unprocessedFeed,
                                                AppSettings.FulfillmentResponseDirectory);
                }
                else
                {
                    LogWrite("Submit new feed");
                    updater.SubmitFeed(_api, CompanyId, null, AppSettings.FulfillmentRequestDirectory);
                    settings.SetOrdersAdjustmentDate(time.GetUtcTime(), _api.Market, _api.MarketplaceId);
                }
            }
        }
        protected override void RunCallback()
        {
            CompanyDTO company        = null;
            var        dbFactory      = new DbFactory();
            var        time           = new TimeService(dbFactory);
            var        log            = GetLogger();
            var        weightService  = new WeightService();
            var        messageService = new SystemMessageService(log, time, dbFactory);
            var        serviceFactory = new ServiceFactory();

            using (var db = dbFactory.GetRDb())
            {
                company = db.Companies.GetByIdWithSettingsAsDto(CompanyId);
            }

            var actionService = new SystemActionService(log, time);
            var rateProviders = serviceFactory.GetShipmentProviders(log,
                                                                    time,
                                                                    dbFactory,
                                                                    weightService,
                                                                    company.ShipmentProviderInfoList,
                                                                    null,
                                                                    null,
                                                                    null,
                                                                    null);


            //var addressService = new AddressService(null, company.GetReturnAddressDto(), company.GetPickupAddressDto());
            //Checking email service, sent test message
            //var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels);
            //var emailService = new EmailService(GetLogger(), emailSmtpSettings, addressService);

            var rateService = new RateService(dbFactory,
                                              log,
                                              time,
                                              weightService,
                                              messageService,
                                              company,
                                              actionService,
                                              rateProviders);

            rateService.RefreshAmazonRates();
            rateService.RefreshSuspiciousFedexRates();
        }