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); } } }
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"); }
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); } } }
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); }
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); }
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); } } }
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); } } }
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); } }
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); }
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); } }
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); } } }
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); }
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); } }
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); } }
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); } }
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); } }
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); }
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)); }
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)); }
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(); }