/// <summary>
    /// Gets and bulk updates issue templates. Called when the "Get and bulk update templates" button is pressed.
    /// Expects the CreateIssueTemplate method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateIssueTemplates()
    {
        // Prepare the parameters
        string where = "TemplateName LIKE N'MyNewIssueTemplate%'";

        // Get the data
        DataSet templates = EmailTemplateInfoProvider.GetEmailTemplates(where, null);

        if (!DataHelper.DataSourceIsEmpty(templates))
        {
            // Loop through the individual items
            foreach (DataRow templateDr in templates.Tables[0].Rows)
            {
                // Create object from DataRow
                EmailTemplateInfo modifyTemplate = new EmailTemplateInfo(templateDr);

                // Update the properties
                modifyTemplate.TemplateDisplayName = modifyTemplate.TemplateDisplayName.ToUpper();

                // Save the changes
                EmailTemplateInfoProvider.SetEmailTemplateInfo(modifyTemplate);
            }

            return(true);
        }

        return(false);
    }
Beispiel #2
0
    /// <summary>
    /// Gets and bulk updates issue templates. Called when the "Get and bulk update templates" button is pressed.
    /// Expects the CreateIssueTemplate method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateIssueTemplates()
    {
        // Prepare the condition
        IWhereCondition whereCondition = new WhereCondition().Where("TemplateName", QueryOperator.Like, "MyNewIssueTemplate%");

        // Get the data
        var templates = EmailTemplateInfoProvider.GetEmailTemplates().Where(whereCondition);

        if (templates.Any())
        {
            // Loop through the individual items
            foreach (var template in templates)
            {
                // Update the properties
                template.TemplateDisplayName = template.TemplateDisplayName.ToUpper();

                // Save the changes
                EmailTemplateInfoProvider.SetEmailTemplateInfo(template);
            }

            return(true);
        }

        return(false);
    }
Beispiel #3
0
    /// <summary>
    /// Gets and updates issue template. Called when the "Get and update template" button is pressed.
    /// Expects the CreateIssueTemplate method to be run first.
    /// </summary>
    private bool GetAndUpdateIssueTemplate()
    {
        // Get the issue template
        EmailTemplateInfo updateTemplate = EmailTemplateInfoProvider.GetEmailTemplateInfo("MyNewIssueTemplate", SiteContext.CurrentSiteID);

        if (updateTemplate != null)
        {
            // Update the properties
            updateTemplate.TemplateDisplayName = updateTemplate.TemplateDisplayName.ToLower();

            // Save the changes
            EmailTemplateInfoProvider.SetEmailTemplateInfo(updateTemplate);

            return(true);
        }

        return(false);
    }
Beispiel #4
0
            public void SetUp()
            {
                mSite = CreateSiteInfo();
                SiteInfoProvider.SetSiteInfo(mSite);

                var emailTemplate = CreateEmailTemplateInfo(mSite.SiteID);

                EmailTemplateInfoProvider.SetEmailTemplateInfo(emailTemplate);

                mNewsletter = CreateNewsletterInfo(mSite.SiteID, emailTemplate.TemplateID);
                NewsletterInfoProvider.SetNewsletterInfo(mNewsletter);

                mNewsletterSubscriptionSettings = CreateNewsletterSubscriptionSettings(false);
                mNewsletterSubscriptionService  = new NewsletterSubscriptionService();
                Service.Use <IActivityLogService, ActivityLogServiceInMemoryFake>();

                SiteContext.CurrentSite = mSite;
            }
Beispiel #5
0
    /// <summary>
    /// Creates issue template. Called when the "Create template" button is pressed.
    /// </summary>
    private bool CreateIssueTemplate()
    {
        // Create new issue template object
        EmailTemplateInfo newTemplate = new EmailTemplateInfo();

        // Set the properties
        newTemplate.TemplateDisplayName = "My new issue template";
        newTemplate.TemplateName        = "MyNewIssueTemplate";
        newTemplate.TemplateType        = EmailTemplateType.Issue;
        newTemplate.TemplateBody        = "<p>My new issue template body</p><p>$$content:800:600$$</p>";
        newTemplate.TemplateHeader      = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title>Newsletter</title><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /></head><body>";
        newTemplate.TemplateFooter      = "</body></html>";
        newTemplate.TemplateSiteID      = SiteContext.CurrentSiteID;

        // Save the issue template
        EmailTemplateInfoProvider.SetEmailTemplateInfo(newTemplate);

        return(true);
    }
    /// <summary>
    /// Creates unsubscription template. Called when the "Create template" button is pressed.
    /// </summary>
    private bool CreateUnsubscriptionTemplate()
    {
        // Create new unsubscription template object
        EmailTemplateInfo newTemplate = new EmailTemplateInfo();

        // Set the properties
        newTemplate.TemplateDisplayName = "My new unsubscription template";
        newTemplate.TemplateName        = "MyNewUnsubscriptionTemplate";
        newTemplate.TemplateType        = EmailTemplateType.Unsubscription;
        newTemplate.TemplateBody        = "My new unsubscription template body";
        newTemplate.TemplateHeader      = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title>Newsletter</title><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /></head><body>";
        newTemplate.TemplateFooter      = "</body></html>";
        newTemplate.TemplateSiteID      = CMSContext.CurrentSiteID;

        // Save the unsubscription template
        EmailTemplateInfoProvider.SetEmailTemplateInfo(newTemplate);

        return(true);
    }
    /// <summary>
    /// Actions handler.
    /// </summary>
    protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e)
    {
        switch (e.CommandName.ToLowerCSafe())
        {
        case "save":
            // Check 'Manage templates' permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.newsletter", "managetemplates"))
            {
                RedirectToAccessDenied("cms.newsletter", "managetemplates");
            }

            string errorMessage;
            // Check template code name
            if (!ValidationHelper.IsCodeName(txtTemplateName.Text))
            {
                errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat");
            }
            else
            {
                // Check code and display name for emptiness
                errorMessage = new Validator().NotEmpty(txtTemplateDisplayName.Text, GetString("general.requiresdisplayname")).NotEmpty(txtTemplateName.Text, GetString("NewsletterTemplate_Edit.ErrorEmptyName")).Result;
            }

            if (string.IsNullOrEmpty(errorMessage))
            {
                // TemplateName must to be unique
                EmailTemplateInfo emailTemplateObj = EmailTemplateInfoProvider.GetEmailTemplateInfo(txtTemplateName.Text.Trim(), SiteContext.CurrentSiteID);

                // If templateName value is unique
                if ((emailTemplateObj == null) || (emailTemplateObj.TemplateID == templateid))
                {
                    // If templateName value is unique -> determine whether it is update or insert
                    if ((emailTemplateObj == null))
                    {
                        // Get EmailTemplate object by primary key
                        emailTemplateObj = EmailTemplateInfoProvider.GetEmailTemplateInfo(templateid) ?? new EmailTemplateInfo();
                    }

                    // Check region names validity
                    bool   isValidRegionName;
                    bool   isValid;
                    string templateBody = htmlTemplateBody.ResolvedValue.Trim();

                    EmailTemplateHelper.ValidateEditableRegions(templateBody, out isValid, out isValidRegionName, null);
                    if (isValid)
                    {
                        if (isValidRegionName)
                        {
                            // Set template object
                            emailTemplateObj.TemplateBody           = templateBody;
                            emailTemplateObj.TemplateName           = txtTemplateName.Text.Trim();
                            emailTemplateObj.TemplateHeader         = ValidationHelper.GetString(txtTemplateHeader.Value, "").Trim();
                            emailTemplateObj.TemplateFooter         = ValidationHelper.GetString(txtTemplateFooter.Value, "").Trim();
                            emailTemplateObj.TemplateDisplayName    = txtTemplateDisplayName.Text.Trim();
                            emailTemplateObj.TemplateStylesheetText = txtTemplateStyleSheetText.Text.Trim();

                            // Set temaplte subject only for 'subscription' and 'unsubscription' template types
                            if (plcSubject.Visible)
                            {
                                emailTemplateObj.TemplateSubject = txtTemplateSubject.Text.Trim();
                            }

                            // Save the template object and display info message
                            EmailTemplateInfoProvider.SetEmailTemplateInfo(emailTemplateObj);
                            ShowChangesSaved();

                            // Reload header if changes were saved
                            ScriptHelper.RefreshTabHeader(Page, emailTemplateObj.TemplateDisplayName);
                        }
                        else
                        {
                            ShowError(GetString("NewsletterTemplate_Edit.EditableRegionNameError"));
                        }
                    }
                    else
                    {
                        ShowError(GetString("NewsletterTemplate_Edit.EditableRegionError"));
                    }
                }
                else
                {
                    ShowError(GetString("NewsletterTemplate_Edit.TemplateNameExists"));
                }
            }
            else
            {
                ShowError(errorMessage);
            }
            break;
        }
    }
Beispiel #8
0
    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        string errorMessage = new Validator().NotEmpty(txtTemplateDisplayName.Text.Trim(), GetString("general.requiresdisplayname"))
                              .NotEmpty(txtTemplateName.Text.Trim(), GetString("NewsletterTemplate_Edit.ErrorEmptyName"))
                              .IsCodeName(txtTemplateName.Text.Trim(), GetString("General.ErrorCodeNameInIdentifierFormat")).Result;

        if (String.IsNullOrEmpty(errorMessage))
        {
            int siteId = CMSContext.CurrentSiteID;
            // TemplateName must to be unique
            EmailTemplateInfo emailTemplateObj = EmailTemplateInfoProvider.GetEmailTemplateInfo(txtTemplateName.Text.Trim(), siteId);

            // If templateName value is unique
            if (emailTemplateObj == null)
            {
                string type;
                int    typeValue = Convert.ToInt32(drpTemplateType.SelectedValue);
                switch (typeValue)
                {
                default:
                case 0:
                    type = "D";     // Double opt-in
                    break;

                case 1:
                    type = "I";     // Issue
                    break;

                case 2:
                    type = "S";     // Subscription
                    break;

                case 3:
                    type = "U";     // Unsubscription
                    break;
                }

                // Create new item -> insert
                emailTemplateObj = new EmailTemplateInfo();
                emailTemplateObj.TemplateType        = type;
                emailTemplateObj.TemplateBody        = string.Empty;
                emailTemplateObj.TemplateName        = txtTemplateName.Text.Trim();
                emailTemplateObj.TemplateHeader      = "<html>\n<head>\n</head>\n<body>";
                emailTemplateObj.TemplateFooter      = "</body>\n</html>";
                emailTemplateObj.TemplateDisplayName = txtTemplateDisplayName.Text.Trim();
                emailTemplateObj.TemplateSiteID      = siteId;

                EmailTemplateInfoProvider.SetEmailTemplateInfo(emailTemplateObj);

                URLHelper.Redirect("NewsletterTemplate_Edit.aspx?templateid=" + Convert.ToString(emailTemplateObj.TemplateID) + "&saved=1");
            }
            else
            {
                lblError.Visible = true;
                lblError.Text    = GetString("NewsletterTemplate_Edit.TemplateNameExists");
            }
        }
        else
        {
            lblError.Visible = true;
            lblError.Text    = errorMessage;
        }
    }