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 autoPurchaseTime = AppSettings.OverdueAutoPurchaseTime; var companyAddress = new CompanyAddressService(company); var addressService = new AddressService(null, companyAddress.GetReturnAddress(MarketIdentifier.Empty()), companyAddress.GetPickupAddress(MarketIdentifier.Empty())); //Checking email service, sent test message var emailSmtpSettings = SettingsBuilder.GetSmtpSettingsFromCompany(company, AppSettings.IsDebug, AppSettings.IsSampleLabels); var emailService = new EmailService(GetLogger(), emailSmtpSettings, addressService); var checker = new AlertChecker(log, time, dbFactory, emailService, company); using (var db = dbFactory.GetRWDb()) { checker.CheckOverdue(db, now, autoPurchaseTime); } }
protected override void RunCallback() { var dbFactory = new DbFactory(); var time = new TimeService(dbFactory); var log = GetLogger(); var settings = new SettingsService(dbFactory); var now = time.GetAppNowTime(); if (!time.IsBusinessDay(now)) { return; } log.Info("Checking Same Day"); CompanyDTO company = null; 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 emailService = new EmailService(GetLogger(), emailSmtpSettings, addressService); var checker = new AlertChecker(log, time, dbFactory, emailService, company); using (var db = dbFactory.GetRWDb()) { checker.CheckSameDay(db); settings.SetSameDayLastCheck(time.GetUtcTime()); } }