using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using CMS.CMSHelper;
using CMS.ExtendedControls;
using CMS.GlobalHelper;
using CMS.Newsletter;
using CMS.UIControls;
[Title("CMSModules/CMS_Newsletter/exportsubscriber.png", "newsletters.exportsubscribers", "CMS_Newsletter_ExportSubscribers", HelpName = "helpTopic")]
[Security(Resource = "CMS.Newsletter", UIElements = "ExportSubscribers")]
public partial class CMSModules_Newsletters_Tools_ImportExportSubscribers_Subscriber_Export : CMSNewsletterPage
{
///
/// Messages placeholder
///
public override MessagesPlaceHolder MessagesPlaceHolder
{
get
{
return plcMessages;
}
}
protected void Page_Load(object sender, EventArgs e)
{
// Initialize newsletter selector
usNewsletters.WhereCondition = "NewsletterSiteID = " + CMSContext.CurrentSiteID;
// Initialize update panel progress
pnlUpdate.ShowProgress = true;
string text = GetString("general.exporting") + "...";
pnlUpdate.ProgressHTML = "
" + text + " ";
// Initialize radio button list items text
rblExportList.Items[0].Text = GetString("newsletter.allsubscribers");
rblExportList.Items[1].Text = GetString("general.approved");
rblExportList.Items[2].Text = GetString("general.notapproved");
if (!RequestHelper.IsPostBack())
{
rblExportList.SelectedIndex = 0;
}
}
///
/// Handles export button click.
///
/// Sender
/// Event arguments
protected void btnExport_Click(object sender, EventArgs e)
{
// Check "manage subscribers" permission
if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "managesubscribers"))
{
RedirectToCMSDeskAccessDenied("cms.newsletter", "managesubscribers");
}
// Get selected newsletters
List newsletterIds = new List();
string values = ValidationHelper.GetString(usNewsletters.Value, null);
if (!String.IsNullOrEmpty(values))
{
string[] newItems = values.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
if (newItems != null)
{
foreach (string item in newItems)
{
newsletterIds.Add(ValidationHelper.GetInteger(item, 0));
}
}
}
// Export subscribers
string subscribers = null;
if (CMSContext.CurrentSite != null)
{
subscribers = SubscriberInfoProvider.ExportSubscribersFromSite(newsletterIds, CMSContext.CurrentSiteID, true, ValidationHelper.GetInteger(rblExportList.SelectedValue, 0));
}
// No subscribers exported
if (string.IsNullOrEmpty(subscribers))
{
ShowInformation(GetString("Subscriber_Export.noSubscribersExported"));
txtExportSub.Enabled = false;
}
else
{
ShowInformation(GetString("Subscriber_Export.subscribersExported"));
txtExportSub.Enabled = true;
}
txtExportSub.Text = subscribers;
}
}