using System; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.Controls; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.Newsletter; public partial class CMSModules_Newsletters_Controls_UserBlockedFilter : CMSAbstractBaseFilterControl { #region "Constants" private const string All = "ALL"; private const string Active = "ACTIVE"; private const string Blocked = "BLOCKED"; #endregion #region "Variables" private int mBounceLimit; #endregion #region "Properties" /// /// Gets or sets the where condition. /// public override string WhereCondition { get { base.WhereCondition = GenerateWhereCondition(); return base.WhereCondition; } set { base.WhereCondition = value; } } #endregion #region "Methods" protected void Page_Load(object sender, EventArgs e) { mBounceLimit = NewsletterHelper.BouncedEmailsLimit(CMSContext.CurrentSiteName); if (!RequestHelper.IsPostBack()) { Reload(); } } /// /// Reloads control. /// protected void Reload() { ddlBounceFilter.Items.Clear(); ddlBounceFilter.Items.Add(new ListItem(ResHelper.GetString("general.selectall"), All)); ddlBounceFilter.Items.Add(new ListItem(ResHelper.GetString("newsletter.filter.bouncedemails.active"), Active)); ddlBounceFilter.Items.Add(new ListItem(ResHelper.GetString("newsletter.filter.bouncedemails.blocked"), Blocked)); } /// /// Generates WHERE condition. /// private string GenerateWhereCondition() { if (mBounceLimit <= 0) { return null; } switch (ddlBounceFilter.SelectedValue) { case All: return null; case Active: return string.Format("UserBounces < {0}", mBounceLimit); case Blocked: return string.Format("UserBounces >= {0}", mBounceLimit); default: return null; } } #endregion }