public void Execute() { // Verifica se as dependências foram instanciadas (se o método InitializeTaskState foi chamado) if (taskParams == null) { return; } if (dataAccess == null) { return; } if (notifications == null) { return; } if (fileLogger == null) { return; } dataAccess.OpenConnection(); TenantDAO tenantDAO = new TenantDAO(dataAccess.GetConnection()); PreferenceDAO preferenceDAO = new PreferenceDAO(dataAccess.GetConnection()); MailingDAO mailingDAO = new MailingDAO(dataAccess.GetConnection()); List <Object> tenantList = tenantDAO.GetAllTenants(); foreach (Tenant tenant in tenantList) { currentTenant = tenant.id; Preference senderPreference = preferenceDAO.GetTenantPreference(currentTenant, "sysSender"); currentSysSender = senderPreference.value; Preference exportPreference = preferenceDAO.GetTenantPreference(currentTenant, "exportFormat"); int exportFormat = 0; // o default é eportar para PDF if (exportPreference != null) { exportFormat = int.Parse(exportPreference.value); } currentFormatExtension = GetFormatExtension(exportFormat); Preference endDatePreference = preferenceDAO.GetTenantPreference(currentTenant, "periodEndDate"); currentPeriodEndDate = 1; // o default é o periodo entre o dia 1 deste mês e o dia 1 do mês passado if (endDatePreference != null) { currentPeriodEndDate = int.Parse(endDatePreference.value); } currentReportBuilder = GetReportBuilder(exportFormat); List <Object> mailingList = mailingDAO.GetAllMailings(currentTenant); foreach (Mailing mailing in mailingList) { ProcessMailing(mailingDAO, mailing); } } dataAccess.CloseConnection(); }
protected void Page_Load(object sender, EventArgs e) { accountingMasterPage = (AccountingMasterPage)Page.Master; accountingMasterPage.InitializeMasterPageComponents(); dataAccess = accountingMasterPage.dataAccess; // action: // null - Sem ação, apenas lista os mailings // 0 - Excluir mailing, lista os restantes // 1 - Teste execução do mailing int?action = null; int?mailingId = null; try { if (!String.IsNullOrEmpty(Request.QueryString["action"])) { action = int.Parse(Request.QueryString["action"]); } if (!String.IsNullOrEmpty(Request.QueryString["mailingId"])) { mailingId = int.Parse(Request.QueryString["mailingId"]); } } catch (System.FormatException) { // Remove todos os controles da página configurationArea.Controls.Clear(); controlArea.Controls.Clear(); // Mostra aviso de inconsistência nos parâmetros WarningMessage.Show(controlArea, ArgumentBuilder.GetWarning()); return; } Tenant tenant = (Tenant)Session["tenant"]; mailingDAO = new MailingDAO(dataAccess.GetConnection()); if (mailingId != null) { switch (action) { case 0: mailingDAO.RemoveMailing(mailingId.Value); Response.Redirect("ConfigMailing.aspx"); // Limpa a QueryString para evitar erros break; case 1: Mailing mailing = mailingDAO.GetMailing(tenant.id, mailingId); TestMailing(mailing); break; default: break; } } List <Object> mailingList = mailingDAO.GetAllMailings(tenant.id); String[] columnNames = new String[] { "Frequência de envio", "Relatório", "Destinatários" }; //String testScript = "window.location='ConfigMailing.aspx?action=1&mailingId=' + {0};"; String alterScript = "window.open('MailingSettings.aspx?mailingId=' + {0}, 'Settings', 'width=540,height=600');"; String removeScript = "var confirmed = confirm('Deseja realmente excluir este item?'); if (confirmed) window.location='ConfigMailing.aspx?action=0&mailingId=' + {0};"; EditableListButton[] buttons = new EditableListButton[] { // Botões que devem aparecer para os items da lista //new EditableListButton("Testar", testScript, ButtonTypeEnum.Execute), new EditableListButton("Editar", alterScript, ButtonTypeEnum.Edit), new EditableListButton("Excluir", removeScript, ButtonTypeEnum.Remove) }; EditableList editableList = new EditableList(configurationArea, columnNames, buttons); foreach (Mailing mailing in mailingList) { ReportFrequencyEnum frequency = (ReportFrequencyEnum)mailing.frequency; ReportTypeEnum reportType = (ReportTypeEnum)mailing.reportType; String[] mailingProperties = new String[] { AssociatedText.GetFieldDescription(typeof(ReportFrequencyEnum), frequency.ToString()), AssociatedText.GetFieldDescription(typeof(ReportTypeEnum), reportType.ToString()), mailing.recipients }; // A lista de mailings não possui item default, isDefaultItem é sempre "false" editableList.InsertItem(mailing.id, false, mailingProperties); } editableList.DrawList(); // O clique do botão chama o script de alteração passando "id = 0", a tela de alteração // interpreta "id = 0" como "criar um novo", o id é então gerado no banco de dados. btnNovo.Attributes.Add("onClick", String.Format(alterScript, 0)); }