using System;
using CMS.Controls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
public partial class CMSWebParts_Membership_Users_UsersFilter_files_UsersFilterControl : 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 activity link text.
///
public string SortActivityLinkText
{
get
{
if (string.IsNullOrEmpty(lnkSortByActivity.Text))
{
lnkSortByActivity.Text = ResHelper.GetString("membersfilter.activity");
}
return lnkSortByActivity.Text;
}
set
{
lnkSortByActivity.Text = value;
}
}
///
/// Gets or sets the user name link text.
///
public string SortUserNameLinkText
{
get
{
if (string.IsNullOrEmpty(lnkSortByUserName.Text))
{
lnkSortByUserName.Text = ResHelper.GetString("general.username");
}
return lnkSortByUserName.Text;
}
set
{
lnkSortByUserName.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[lnkSortByActivity.UniqueID] == null) && (Request.Form[lnkSortByUserName.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") + ":";
lnkSortByActivity.Text = SortActivityLinkText;
lnkSortByUserName.Text = SortUserNameLinkText;
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 lnkSortByUserName_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("UserName ASC") ? "UserName DESC" : "UserName ASC";
// Save new order by clause to viewstate
ViewState["OrderClause"] = OrderBy;
// Raise OnFilterChange event
RaiseOnFilterChanged();
}
protected void lnkSortByActivity_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("UserActivityPoints DESC") ? "UserActivityPoints ASC" : "UserActivityPoints 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);
string whereCondition = "(UserName LIKE N'%" + searchPhrase + "%') OR ";
whereCondition += "(UserNickName LIKE N'%" + searchPhrase + "%')";
return whereCondition;
}
}