Esempio n. 1
0
        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());
                    }
                }
            }
        }