using System; using System.Web.UI; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.Controls; using CMS.UIControls; /// /// Site selector for selecting site specific, all sites or global objects. /// public partial class CMSModules_BannerManagement_Controls_Filters_SiteSelector : CMSAbstractBaseFilterControl { #region "Properties" /// /// Where condition. /// public override string WhereCondition { get { base.WhereCondition = GetWhereCondition(); return base.WhereCondition; } set { base.WhereCondition = value; } } /// /// Gets or sets site ID. /// public int SiteID { get { return siteSelector.SiteID; } set { siteSelector.SiteID = value; } } /// /// Filter value. /// public override object Value { get { return siteSelector.Value; } set { siteSelector.Value = value; } } #endregion #region "Methods and events" /// /// OnLoad override - check whether filter is set. /// protected override void OnLoad(EventArgs e) { base.OnLoad(e); siteSelector.Selector.SelectedIndexChanged += new EventHandler(Selector_SelectedIndexChanged); } /// /// Generates where condition. /// public string GetWhereCondition() { int currentSiteID = CMSContext.CurrentSiteID; switch (siteSelector.SiteID) { case UniSelector.US_GLOBAL_RECORD: // Global objects only return "BannerCategorySiteID IS NULL"; case UniSelector.US_GLOBAL_OR_SITE_RECORD: // Global and site objects return "(BannerCategorySiteID = " + currentSiteID + ") OR BannerCategorySiteID IS NULL"; default: // Site objects only return "BannerCategorySiteID = " + currentSiteID; } } /// /// Handles Site selector OnSelectionChanged event. /// protected void Selector_SelectedIndexChanged(object sender, EventArgs e) { // Raise OnFilterChange event RaiseOnFilterChanged(); } #endregion }