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/Content/Controls/Filters/RecycleBinFilter.ascx.cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;

using CMS.Controls;
using CMS.DataEngine;
using CMS.ExtendedControls;
using CMS.FormControls;
using CMS.Helpers;
using CMS.Membership;
using CMS.UIControls;

public partial class CMSModules_Content_Controls_Filters_RecycleBinFilter : CMSAbstractRecycleBinFilterControl
{
    #region "Public properties"

    /// <summary>
    /// Returns selected user identifier.
    /// </summary>
    public int SelectedUser
    {
        get
        {
            Control postbackControl = ControlsHelper.GetPostBackControl(Page);
            return ValidationHelper.GetInteger((postbackControl == btnShow) ? userSelector.Value : ViewState["SelectedUser"], MembershipContext.AuthenticatedUser.UserID);
        }
        private set
        {
            userSelector.Value = value;
            ViewState["SelectedUser"] = value;
            WhereCondition = CreateWhereCondition(base.WhereCondition);
        }
    }


    /// <summary>
    /// Where condition.
    /// </summary>
    public override string WhereCondition
    {
        get
        {
            return CreateWhereCondition(base.WhereCondition);
        }
    }


    /// <summary>
    /// Determines whether filter is set.
    /// </summary>
    public override bool FilterIsSet
    {
        get
        {
            int userId = ValidationHelper.GetInteger(userSelector.Value, 0);
            return nameFilter.FilterIsSet || pathFilter.FilterIsSet || classFilter.FilterIsSet || ((userId > 0) && UsersPlaceHolder.Visible) || !string.IsNullOrWhiteSpace(txtFilter.Text);
        }
    }


    /// <summary>
    /// Gets place holder with user selector.
    /// </summary>
    public PlaceHolder UsersPlaceHolder
    {
        get
        {
            return plcUsers;
        }
    }


    /// <summary>
    /// Site ID to filter users.
    /// </summary>
    public override int SiteID
    {
        get
        {
            return userSelector.SiteID;
        }
        set
        {
            userSelector.SiteID = value;
        }
    }


    /// <summary>
    /// Indicates if all available users should be displayed.
    /// </summary>
    public override bool DisplayUsersFromAllSites
    {
        get
        {
            return userSelector.DisplayUsersFromAllSites;
        }
        set
        {
            userSelector.DisplayUsersFromAllSites = value;
        }
    }


    /// <summary>
    /// Indicates if date time filter should be displayed.
    /// </summary>
    public override bool DisplayDateTimeFilter
    {
        get
        {
            return plcDateTime.Visible;
        }
        set
        {
            plcDateTime.Visible = value;
        }
    }


    /// <summary>
    /// Gets user selector control.
    /// </summary>
    public FormEngineUserControl UserSelector
    {
        get
        {
            return userSelector;
        }
    }

    #endregion


    #region "Page events"

    protected override void OnInit(EventArgs e)
    {
        UsersPlaceHolder.Visible = MembershipContext.AuthenticatedUser.IsGlobalAdministrator;

        if (!RequestHelper.IsPostBack())
        {
            // Preselect default value
            SelectedUser = MembershipContext.AuthenticatedUser.UserID;
        }

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

        base.OnInit(e);
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!RequestHelper.IsPostBack())
        {
            if (DisplayDateTimeFilter)
            {
                // Fill the dropdown list
                drpFilter.Items.Add(GetString("MyDesk.OutdatedDocuments.Days"));
                drpFilter.Items.Add(GetString("MyDesk.OutdatedDocuments.Weeks"));
                drpFilter.Items.Add(GetString("MyDesk.OutdatedDocuments.Months"));
                drpFilter.Items.Add(GetString("MyDesk.OutdatedDocuments.Years"));

                // Load default value
                if (String.IsNullOrEmpty(txtFilter.Text))
                {
                    txtFilter.Text = "0";
                    drpFilter.SelectedIndex = 0;
                }
            }
        }

        DisplayUsersFromAllSites = !(SiteID > 0);
        userSelector.TreatGlobalAdminsAsSiteUsers = !DisplayUsersFromAllSites;
        userSelector.ApplyValueRestrictions = false;
    }

    #endregion


    #region "Methods"

    /// <summary>
    /// Reload control data.
    /// </summary>
    public void ReloadData()
    {
        userSelector.AllowAll = MembershipContext.AuthenticatedUser.IsGlobalAdministrator;
        userSelector.ReloadData();
    }


    private string CreateWhereCondition(string originalWhere)
    {
        string where = originalWhere;
        // Add where conditions from filters
        where = SqlHelper.AddWhereCondition(where, pathFilter.WhereCondition);
        where = SqlHelper.AddWhereCondition(where, nameFilter.WhereCondition);
        if (!string.IsNullOrEmpty(classFilter.WhereCondition))
        {
            where = SqlHelper.AddWhereCondition(where, "VersionClassID IN (SELECT ClassID FROM CMS_Class WHERE " + classFilter.WhereCondition + ")");
        }

        int userId = ValidationHelper.GetInteger(userSelector.Value, 0);
        if (userId > 0)
        {
            where = SqlHelper.AddWhereCondition(where, "VersionDeletedByUserID = " + userId);
        }

        // Get older than value
        if (DisplayDateTimeFilter)
        {
            DateTime olderThan = DateTime.Now.Date.AddDays(1);
            int dateTimeValue = ValidationHelper.GetInteger(txtFilter.Text, 0);

            switch (drpFilter.SelectedIndex)
            {
                case 0:
                    olderThan = olderThan.AddDays(-dateTimeValue);
                    break;

                case 1:
                    olderThan = olderThan.AddDays(-dateTimeValue*7);
                    break;

                case 2:
                    olderThan = olderThan.AddMonths(-dateTimeValue);
                    break;

                case 3:
                    olderThan = olderThan.AddYears(-dateTimeValue);
                    break;
            }

            where = SqlHelper.AddWhereCondition(where, "VersionDeletedWhen <= '" + olderThan.ToString(TableManager.DatabaseCultureInfo) + "'");
        }
        else
        {
            // Make sure that only deleted documents are selected
            where = SqlHelper.AddWhereCondition(where, "VersionDeletedWhen IS NOT NULL");
        }

        return where;
    }

    #endregion


    #region "Control events"

    protected void btnShow_Click(object sender, EventArgs e)
    {
        SelectedUser = ValidationHelper.GetInteger(userSelector.Value, MembershipContext.AuthenticatedUser.UserID);

        UniGrid grid = FilteredControl as UniGrid;
        if (grid != null)
        {
            grid.ApplyFilter(sender, e);
        }
    }


    /// <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>
    /// 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("RecycleBinUser", SelectedUser);
    }


    /// <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);
        SelectedUser = state.GetInt32("RecycleBinUser");
    }


    /// <summary>
    /// Resets filter to the default state.
    /// </summary>
    public override void ResetFilter()
    {
        if (DisplayDateTimeFilter)
        {
            txtFilter.Text = "0";
            drpFilter.SelectedIndex = 0;
        }

        SelectedUser = MembershipContext.AuthenticatedUser.UserID;
        ReloadData();

        nameFilter.ResetFilter();
        pathFilter.ResetFilter();
        classFilter.ResetFilter();
    }

    #endregion
}