private void SendOperatorEmails() { AspSettings settings = AspSettings.Load(); IConfigurator config = Configurator.Create(); // Trial - One day before end foreach (Guid cid in CManage.GetCompaniesByCategory(CompanyCategory.OneDayBeforeEnd, settings.OneDayBeforePeriod, true)) { try { if (!CManage.NotificationGet(cid, EmailType.TrialOneDayBefore)) { if (string.IsNullOrEmpty(settings.OperatorEmail)) { CManage.NotificationUpdate(cid, EmailType.TrialOneDayBefore, true); TemplateVariables vars = CManage.CompanyGetVariables(cid); CManage.SendEmail(settings.OperatorEmail, EmailType.TrialOneDayBefore, vars); } } } catch (Exception ex) { Log.WriteError(ex.ToString()); } } if (settings.UseTariffs) { // Billable - One day before end foreach (Guid cid in CManage.GetCompaniesByCategory(CompanyCategory.BillableNdaysBefore, 1, false)) { // ensure that we send emails only once for a day DateTime lastSpamDate = CManage.GetNotificationOperatorSpamDate(cid); if (lastSpamDate > DateTime.Now.AddDays(-1)) { continue; } try { if (string.IsNullOrEmpty(settings.OperatorEmail)) { TemplateVariables vars = CManage.CompanyGetVariables(cid); CManage.SendEmail(settings.OperatorEmail, EmailType.OperatorCompanyDeactivatedDayBefore, vars); CManage.UpdateNotificationOperatorSpamDate(cid, DateTime.Now); } } catch (Exception ex) { Log.WriteError(ex.ToString()); } } } }