예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            settingsMasterPage = (SettingsMasterPage)Page.Master;
            settingsMasterPage.InitializeMasterPageComponents();
            DataAccess dataAccess = settingsMasterPage.dataAccess;

            int     mailingId;
            Boolean isNumeric = int.TryParse(Request.QueryString["mailingId"], out mailingId);

            if (!isNumeric)
            {
                EmbedClientScript.ShowErrorMessage(this, "Os parâmetros passados para a página não estão em um formato válido.", true);
                return;
            }

            Tenant tenant = (Tenant)Session["tenant"];

            mailingDAO = new MailingDAO(dataAccess.GetConnection());
            Mailing mailing = mailingDAO.GetMailing(tenant.id, mailingId);

            if (mailing == null)
            {
                mailing          = new Mailing();
                mailing.tenantId = tenant.id;
            }

            SettingsInput settingsInput = new SettingsInput(settingsArea, null);

            settingsInput.AddHidden("txtId", mailing.id.ToString());
            settingsInput.AddHidden("txtTenantId", mailing.tenantId.ToString());
            ListItem[] items = DropDownScaffold.RetrieveStrict("pr_retrieveSmtpServer", dataAccess.GetConnection(), typeof(SmtpServer));
            settingsInput.AddDropDownList("cmbSmtpServer", "Servidor SMTP", mailing.smtpServer, items);
            settingsInput.AddDropDownList("cmbFrequency", "Frequencia de Envio", mailing.frequency, typeof(ReportFrequencyEnum));
            settingsInput.AddDropDownList("cmbReportType", "Relatório", mailing.reportType, typeof(ReportTypeEnum));
            settingsInput.Add("txtRecipients", "Enviar para", mailing.recipients);
            settingsInput.AddHidden("txtLastSend", mailing.lastSend.ToShortDateString());
        }
예제 #2
0
        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));
        }