HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/RMourik/bassol.nl/wwwroot/CMSModules/Forums/Filters/ForumGroupFilter.ascx.cs
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

using CMS.Controls;
using CMS.Forums;
using CMS.Helpers;
using CMS.UIControls;

public partial class CMSModules_Forums_Filters_ForumGroupFilter : CMSAbstractBaseFilterControl
{
    #region "Variables"

    private CMSUserControl filteredControl;

    #endregion


    #region "Properties"

    /// <summary>
    /// Where condition.
    /// </summary>
    public override string WhereCondition
    {
        get
        {
            int selectedGroup = ValidationHelper.GetInteger(forumGroupSelector.Value, 0);
            base.WhereCondition = GenerateWhereCondition(selectedGroup);
            return base.WhereCondition;
        }
        set
        {
            base.WhereCondition = value;
        }
    }


    /// <summary>
    /// Filter value.
    /// </summary>
    public override object Value
    {
        get
        {
            return forumGroupSelector.Value;
        }
        set
        {
            forumGroupSelector.Value = value;
        }
    }

    #endregion


    #region "Methods"

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        filteredControl = FilteredControl as CMSUserControl;
        forumGroupSelector.UniSelector.ReturnColumnName = "GroupID";
        forumGroupSelector.UniSelector.OnSelectionChanged += new EventHandler(UniSelector_OnSelectionChanged);
        forumGroupSelector.DropDownSingleSelect.AutoPostBack = true;

        // Set group selector dropdow to show only forumgroups of the site
        int siteId = ValidationHelper.GetInteger(filteredControl.GetValue("SiteID"), 0);
        forumGroupSelector.SiteId = siteId;

        // Get first forum group to be able to filter uni selector
        if (!RequestHelper.IsPostBack())
        {
            if (siteId > 0)
            {
                DataSet defaultGroup = ForumGroupInfoProvider.GetGroups("GroupGroupID IS NULL AND GroupName NOT LIKE 'AdHoc%' AND  GroupSiteID=" + siteId, "GroupDisplayName", 1, "GroupID");
                if (!DataHelper.DataSourceIsEmpty(defaultGroup))
                {
                    int defaultGroupId = ValidationHelper.GetInteger(defaultGroup.Tables[0].Rows[0]["GroupID"], 0);
                    if (defaultGroupId > 0)
                    {
                        forumGroupSelector.UniSelector.Value = defaultGroupId;
                        WhereCondition = GenerateWhereCondition(defaultGroupId);
                    }
                }
                ;
            }
        }
    }


    private void UniSelector_OnSelectionChanged(object sender, EventArgs e)
    {
        RaiseOnFilterChanged();
    }


    /// <summary>
    /// Generates where condition.
    /// </summary>
    /// <param name="forumGroupId">Selected forum group id</param>
    protected string GenerateWhereCondition(int forumGroupId)
    {
        return "ForumGroupID IN (SELECT GroupID FROM Forums_ForumGroup WHERE forumGroupId = " + forumGroupId + ")";
    }

    #endregion
}