using System;
using CMS.Controls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
public partial class CMSWebParts_Community_Groups_GroupsFilter_files_GroupsFilterControl : CMSAbstractBaseFilterControl
{
#region "Public properties"
///
/// Gets or sets the button text.
///
public string ButtonText
{
get
{
if (string.IsNullOrEmpty(btnSelect.Text))
{
btnSelect.Text = ResHelper.GetString("general.search");
}
return btnSelect.Text;
}
set
{
btnSelect.Text = value;
}
}
///
/// Gets or sets the group name link text.
///
public string SortGroupNameLinkText
{
get
{
if (string.IsNullOrEmpty(lnkSortByGroupName.Text))
{
lnkSortByGroupName.Text = ResHelper.GetString("unigrid.forums.columns.groupname");
}
return lnkSortByGroupName.Text;
}
set
{
lnkSortByGroupName.Text = value;
}
}
///
/// Gets or sets the group created link text.
///
public string SortGroupCreatedLinkText
{
get
{
if (string.IsNullOrEmpty(lnkSortByGroupCreated.Text))
{
lnkSortByGroupCreated.Text = ResHelper.GetString("groups.created");
}
return lnkSortByGroupCreated.Text;
}
set
{
lnkSortByGroupCreated.Text = value;
}
}
#endregion
///
/// OnLoad override - check wheter filter is set.
///
protected override void OnLoad(EventArgs e)
{
// Set filter only if it is not filter request
if (Request.Form[btnSelect.UniqueID] == null)
{
// Try to get where condition
string wherePart = ValidationHelper.GetString(ViewState["FilterCondition"], string.Empty);
if (!string.IsNullOrEmpty(wherePart))
{
// Set where condition and raise OnFilter change event
WhereCondition = GenerateWhereCondition(wherePart);
// Raise event
RaiseOnFilterChanged();
}
}
if ((Request.Form[lnkSortByGroupName.UniqueID] == null) && (Request.Form[lnkSortByGroupCreated.UniqueID] == null))
{
string orderByPart = ValidationHelper.GetString(ViewState["OrderClause"], string.Empty);
if (!string.IsNullOrEmpty(orderByPart))
{
// Set order by clause and raise OnFilter change event
OrderBy = orderByPart;
// Raise event
RaiseOnFilterChanged();
}
}
lblSortBy.Text = ResHelper.GetString("general.sortby") + ":";
lnkSortByGroupName.Text = SortGroupNameLinkText;
lnkSortByGroupCreated.Text = SortGroupCreatedLinkText;
btnSelect.Text = ButtonText;
base.OnLoad(e);
}
///
/// Select button handler.
///
/// Sender
/// EventArgs
protected void btnSelect_Click(object sender, EventArgs e)
{
// Set where condition
WhereCondition = GenerateWhereCondition(txtValue.Text);
// Save filter condition
ViewState["FilterCondition"] = txtValue.Text;
// Raise OnFilterChange event
RaiseOnFilterChanged();
}
protected void lnkSortByGroupName_Click(object sender, EventArgs e)
{
// Get order by clause from viewstate
OrderBy = ValidationHelper.GetString(ViewState["OrderClause"], string.Empty);
// Set new order by clause
OrderBy = OrderBy.Contains("GroupName DESC") ? "GroupName ASC" : "GroupName DESC";
// Save new order by clause to viewstate
ViewState["OrderClause"] = OrderBy;
// Raise OnFilterChange event
RaiseOnFilterChanged();
}
protected void lnkSortByGroupCreated_Click(object sender, EventArgs e)
{
// Get order by clause from viewstate
OrderBy = ValidationHelper.GetString(ViewState["OrderClause"], string.Empty);
// Set new order by clause
OrderBy = OrderBy.Contains("GroupCreatedWhen DESC") ? "GroupCreatedWhen ASC" : "GroupCreatedWhen DESC";
// Save new order by clause to viewstate
ViewState["OrderClause"] = OrderBy;
// Raise OnFilterChange event
RaiseOnFilterChanged();
}
///
/// Generates where condition.
///
/// Phrase to be searched
/// Where condition for given phrase.
protected static string GenerateWhereCondition(string searchPhrase)
{
searchPhrase = SqlHelperClass.GetSafeQueryString(searchPhrase, false);
return "GroupDisplayName LIKE N'%" + searchPhrase + "%'";
}
}