using System;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.FormControls;
using CMS.SettingsProvider;
using CMS.UIControls;
public partial class CMSModules_Newsletters_FormControls_NewsletterSubscriberSelector : FormEngineUserControl
{
#region "Variables"
private int mSiteId = 0;
private bool mShowSiteFilter = true;
private string mResourcePrefix = null;
#endregion
#region "Public properties"
///
/// Gets or sets ID of the site. User of this site are displayed
/// Use 0 for current siteid, -1 for all sites(no filter)
/// Note: SiteID is not used if site filter is enabled
///
public int SiteID
{
get
{
return mSiteId;
}
set
{
mSiteId = value;
}
}
///
/// Gets or sets the value which determines whether to allow more than one user to select.
///
public SelectionModeEnum SelectionMode
{
get
{
EnsureChildControls();
return usSubscribers.SelectionMode;
}
set
{
EnsureChildControls();
usSubscribers.SelectionMode = value;
}
}
///
/// Gets or sets the enabled state of the control.
///
public override bool Enabled
{
get
{
return base.Enabled;
}
set
{
EnsureChildControls();
base.Enabled = value;
usSubscribers.Enabled = value;
}
}
///
/// Gets the current UniSelector instance.
///
public UniSelector UniSelector
{
get
{
EnsureChildControls();
return usSubscribers;
}
}
///
/// Gets or sets field value.
///
public override object Value
{
get
{
EnsureChildControls();
return usSubscribers.Value;
}
set
{
EnsureChildControls();
usSubscribers.Value = value;
}
}
///
/// Gets or sets if site filter should be shown or not.
///
public bool ShowSiteFilter
{
get
{
return mShowSiteFilter;
}
set
{
mShowSiteFilter = value;
}
}
///
/// Gets or sets the resource prefix of uni selector. If not set default values are used.
///
public string ResourcePrefix
{
get
{
return mResourcePrefix;
}
set
{
mResourcePrefix = value;
usSubscribers.ResourcePrefix = value;
}
}
///
/// Indicates if control is used on live site.
///
public override bool IsLiveSite
{
get
{
return base.IsLiveSite;
}
set
{
EnsureChildControls();
base.IsLiveSite = value;
usSubscribers.IsLiveSite = value;
}
}
#endregion
#region "Methods"
protected void Page_Load(object sender, EventArgs e)
{
// Set prefix if not set
if (string.IsNullOrEmpty(ResourcePrefix))
{
usSubscribers.ResourcePrefix = "selectsubscriber";
}
// Add sites filter
if (ShowSiteFilter)
{
usSubscribers.FilterControl = "~/CMSFormControls/Filters/SiteFilter.ascx";
usSubscribers.SetValue("DefaultFilterValue", (SiteID > 0) ? SiteID : CMSContext.CurrentSiteID);
usSubscribers.SetValue("FilterMode", "subscriber");
}
// Select users depending on site; if filter enabled, where condition is added from filter itself
if (!ShowSiteFilter && (SiteID >= 0))
{
int siteId = (SiteID == 0) ? CMSContext.CurrentSiteID : SiteID;
string where = "SubscriberSiteID = " + siteId.ToString();
usSubscribers.WhereCondition = SqlHelperClass.AddWhereCondition(usSubscribers.WhereCondition, where);
}
// Limit selection only to subscribers, remove roles and users
usSubscribers.WhereCondition = SqlHelperClass.AddWhereCondition(usSubscribers.WhereCondition, "(SubscriberType IS NULL)");
}
///
/// Creates child controls and loads update panel container if it is required.
///
protected override void CreateChildControls()
{
// If selector is not defined load updat panel container
if (usSubscribers == null)
{
pnlUpdate.LoadContainer();
}
// Call base method
base.CreateChildControls();
}
#endregion
}