using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.Controls;
using CMS.ExtendedControls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
public partial class CMSModules_Content_Controls_Filters_ObjectsRecycleBinFilter : CMSAbstractBaseFilterControl
{
#region "Private variables"
private bool mIsSingleSite = false;
private bool mLoadObjTypes = true;
#endregion
#region "Public properties"
///
/// Returns selected user identifier.
///
public int SelectedUser
{
get
{
Control postbackControl = ControlsHelper.GetPostBackControl(Page);
return ValidationHelper.GetInteger((postbackControl == btnShow) ? userSelector.Value : ViewState["SelectedUser"], CMSContext.CurrentUser.UserID);
}
private set
{
userSelector.Value = value;
ViewState["SelectedUser"] = value;
WhereCondition = CreateWhereCondition(base.WhereCondition);
}
}
///
/// Where condition.
///
public override string WhereCondition
{
get
{
Control postbackControl = ControlsHelper.GetPostBackControl(Page);
return DataHelper.GetNotEmpty((postbackControl == btnShow) ? CreateWhereCondition(base.WhereCondition) : ViewState["WhereCondition"], string.Empty);
}
set
{
base.WhereCondition = value;
ViewState["WhereCondition"] = value;
}
}
///
/// Determines whether filter is set.
///
public bool FilterIsSet
{
get
{
int userId = ValidationHelper.GetInteger(userSelector.Value, 0);
string objType = ValidationHelper.GetString(objTypeSelector.Value, "");
return nameFilter.FilterIsSet || !String.IsNullOrEmpty(objType) || ((userId > 0) && UsersPlaceHolder.Visible);
}
}
///
/// Gets place holder with user selector.
///
public PlaceHolder UsersPlaceHolder
{
get
{
return plcUsers;
}
}
///
/// Site ID to filter usable values.
///
public int SiteID
{
get
{
return userSelector.SiteID;
}
set
{
userSelector.SiteID = value;
}
}
///
/// Indicates if all item should be displayed in user selector.
///
public bool IsSingleSite
{
get
{
return mIsSingleSite;
}
set
{
mIsSingleSite = value;
}
}
///
/// Indicates if all available users should be displayed.
///
public bool DisplayUsersFromAllSites
{
get
{
return userSelector.DisplayUsersFromAllSites;
}
set
{
userSelector.DisplayUsersFromAllSites = value;
}
}
#endregion
#region "Page events"
///
/// Page Init event.
///
protected void Page_Init(object sender, EventArgs e)
{
if (!RequestHelper.IsPostBack())
{
// Preselect default value
SelectedUser = CMSContext.CurrentUser.UserID;
}
}
///
/// Page load event.
///
protected void Page_Load(object sender, EventArgs e)
{
userSelector.DropDownSingleSelect.AutoPostBack = true;
if (!RequestHelper.IsCallback())
{
userSelector.DropDownSingleSelect.Width = new Unit(305);
objTypeSelector.DropDownListControl.Width = new Unit(305);
}
if (!RequestHelper.IsPostBack())
{
// Preselect default value
SelectedUser = CMSContext.CurrentUser.UserID;
}
}
///
/// Page pre render event.
///
protected void Page_PreRender(object sender, EventArgs e)
{
if (mLoadObjTypes)
{
SetObjTypeSelector();
objTypeSelector.Reload(true);
}
pnlObjType.Update();
}
#endregion
#region "Control methods"
///
/// Reload control data.
///
public void ReloadData()
{
SetObjTypeSelector();
objTypeSelector.Reload(true);
mLoadObjTypes = false;
WhereCondition = null;
}
private string CreateWhereCondition(string originalWhere)
{
string where = originalWhere;
// Add where conditions from filters
where = SqlHelperClass.AddWhereCondition(where, nameFilter.WhereCondition);
string objType = SqlHelperClass.GetSafeQueryString(ValidationHelper.GetString(objTypeSelector.Value, ""), false);
if (!string.IsNullOrEmpty(objType))
{
where = SqlHelperClass.AddWhereCondition(where, "VersionObjectType LIKE N'" + objType + "'");
}
int userId = ValidationHelper.GetInteger(userSelector.Value, 0);
if (userId > 0)
{
where = SqlHelperClass.AddWhereCondition(where, "VersionDeletedByUserID = " + userId);
}
return where;
}
///
/// Set object type selector properties
///
protected void SetObjTypeSelector()
{
objTypeSelector.UserID = ValidationHelper.GetInteger(userSelector.Value, 0);
if (SiteID > 0)
{
objTypeSelector.WhereCondition = "VersionObjectSiteID = " + SiteID;
if (IsSingleSite)
{
objTypeSelector.WhereCondition = SqlHelperClass.AddWhereCondition(objTypeSelector.WhereCondition, "VersionObjectSiteID IS NULL", "OR");
}
}
else if ((SiteID == 0) && !IsSingleSite)
{
objTypeSelector.WhereCondition = SqlHelperClass.AddWhereCondition(objTypeSelector.WhereCondition, "VersionObjectSiteID IS NULL");
}
}
#endregion
#region "Control events"
protected void btnShow_Click(object sender, EventArgs e)
{
SelectedUser = ValidationHelper.GetInteger(userSelector.Value, CMSContext.CurrentUser.UserID);
}
#endregion
}