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/CMS/CMSModules/AbuseReport/Controls/AbuseReportFilter.ascx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using CMS.Controls;
using CMS.Helpers;
using CMS.Membership;
using CMS.Base;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.DataEngine;

public partial class CMSModules_AbuseReport_Controls_AbuseReportFilter : CMSAbstractBaseFilterControl
{
    #region "Public properties"

    public override string WhereCondition
    {
        get
        {
            return BuildWhereCondition();
        }
        set
        {
            base.WhereCondition = value;
        }
    }

    #endregion


    #region "Page events"

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        siteSelector.DropDownSingleSelect.AutoPostBack = false;

        // Load dropdown list
        if (!RequestHelper.IsPostBack())
        {
            InitializeComponents();
            siteSelector.Value = SiteContext.CurrentSiteID;
        }

        UniGrid grid = FilteredControl as UniGrid;
        if (grid != null && grid.RememberState)
        {
            btnReset.Text = GetString("general.reset");
            btnReset.Click += btnReset_Click;
        }
        else
        {
            btnReset.Visible = false;
        }
    }

    #endregion


    #region "Private methods"

    /// <summary>
    /// Loads status from enumeration to dropdown list.
    /// </summary>
    private void InitializeComponents()
    {
        drpStatus.Items.Add(new ListItem(GetString("general.selectall"), "-1"));
        drpStatus.Items.Add(new ListItem(GetString("general.new"), "0"));
        drpStatus.Items.Add(new ListItem(GetString("general.solved"), "1"));
        drpStatus.Items.Add(new ListItem(GetString("general.rejected"), "2"));

        // Status preselection by URL
        string preselectedStatus = QueryHelper.GetString("status", null);
        if (!String.IsNullOrEmpty(preselectedStatus))
        {
            foreach (ListItem item in drpStatus.Items)
            {
                if (item.Value == preselectedStatus)
                {
                    drpStatus.SelectedIndex = drpStatus.Items.IndexOf(item);
                }
            }
        }

        // Show site selector only for global admin
        if (MembershipContext.AuthenticatedUser.IsGlobalAdministrator)
        {
            // Set site selector
            siteSelector.AllowAll = true;
        }
        else
        {
            plcSites.Visible = false;
        }
    }


    /// <summary>
    /// Builds complete where condition to filtering
    /// </summary>
    private string BuildWhereCondition()
    {
        // Create WHERE condition with ReportStatus
        string completeWhere = "";
        if (!String.IsNullOrEmpty(drpStatus.SelectedValue) && (drpStatus.SelectedValue != "-1"))
        {
            completeWhere = SqlHelper.AddWhereCondition(completeWhere, "(ReportStatus = " + ValidationHelper.GetInteger(drpStatus.SelectedValue, 0) + ")");
        }

        // Create WHERE condition with ReportTitle
        string txt = txtTitle.Text.Trim().Replace("'", "''");
        if (!string.IsNullOrEmpty(txt))
        {
            completeWhere = SqlHelper.AddWhereCondition(completeWhere, "(ReportTitle LIKE '%" + txt + "%')");
        }

        // Create WHERE condition with ReportObjectType
        int siteId = ValidationHelper.GetInteger(siteSelector.Value, 0);
        if (siteId == 0)
        {
            siteId = SiteContext.CurrentSiteID;
        }
        if (siteId > 0)
        {
            completeWhere = SqlHelper.AddWhereCondition(completeWhere, "(ReportSiteID = " + siteId + ")");
        }

        return completeWhere;
    }

    #endregion


    #region "State management"

    /// <summary>
    /// Stores filter state to the specified object.
    /// </summary>
    /// <param name="state">The object that holds the filter state.</param>
    public override void StoreFilterState(FilterState state)
    {
        base.StoreFilterState(state);
        state.AddValue("ReportStatus", drpStatus.SelectedValue);
    }


    /// <summary>
    /// Restores filter state from the specified object.
    /// </summary>
    /// <param name="state">The object that holds the filter state.</param>
    public override void RestoreFilterState(FilterState state)
    {
        base.RestoreFilterState(state);
        drpStatus.SelectedValue = state.GetString("ReportStatus");
    }


    /// <summary>
    /// Resets filter to the default state.
    /// </summary>
    public override void ResetFilter()
    {
        drpStatus.SelectedValue = "-1";
        txtTitle.Text = String.Empty;
        siteSelector.Value = SiteContext.CurrentSiteID;
    }


    /// <summary>
    /// Resets the associated UniGrid control.
    /// </summary>
    protected void btnReset_Click(object sender, EventArgs e)
    {
        UniGrid grid = FilteredControl as UniGrid;
        if (grid != null)
        {
            grid.Reset();
        }
    }


    /// <summary>
    /// Applies filter on associated UniGrid control.
    /// </summary>
    protected void btnShow_Click(object sender, EventArgs e)
    {
        UniGrid grid = FilteredControl as UniGrid;
        if (grid != null)
        {
            grid.ApplyFilter(sender, e);
        }
    }

    #endregion
}