/// <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); }
/// <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); }
/// <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); }
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; }
/// <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; } }
/// <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; } }