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 }