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
}