using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.Controls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
public partial class CMSModules_ContactManagement_FormControls_SearchContactFullName : CMSAbstractBaseFilterControl
{
///
/// OnLoad override - check wheter filter is set.
///
protected override void OnLoad(EventArgs e)
{
LoadDropDown();
base.OnLoad(e);
}
///
/// Loads dropdown list.
///
private void LoadDropDown()
{
if (!RequestHelper.IsPostBack())
{
drpCondition.Items.Clear();
drpCondition.Items.Add(new ListItem("LIKE", "0"));
drpCondition.Items.Add(new ListItem("NOT LIKE", "1"));
drpCondition.Items.Add(new ListItem("=", "2"));
drpCondition.Items.Add(new ListItem("<>", "3"));
}
}
///
/// Generates where condition.
///
protected static string GenerateWhereCondition(string text, string value)
{
string searchPhrase = SqlHelperClass.GetSafeQueryString(text, false);
string prefix = "ISNULL(ContactFirstName, '') + CASE WHEN (NULLIF(ContactFirstName,'') IS NULL) THEN '' ELSE ' ' END + ISNULL(ContactMiddleName, '') + CASE WHEN (NULLIF(ContactMiddleName,'') IS NULL) THEN '' ELSE ' ' END + ISNULL(ContactLastName, '')";
switch (value)
{
// LIKE
default:
case "0":
return prefix + " LIKE N'%" + searchPhrase + "%'";
case "1":
return prefix + " NOT LIKE N'%" + searchPhrase + "%'";
case "2":
return prefix + " = N'" + searchPhrase + "'";
case "3":
return prefix + " <> N'" + searchPhrase + "'";
}
}
///
/// Select button handler.
///
/// Sender
/// EventArgs
protected void btnSelect_Click(object sender, EventArgs e)
{
// Set where condition
WhereCondition = GenerateWhereCondition(txtSearch.Text, drpCondition.SelectedValue);
//Raise OnFilterChange event
RaiseOnFilterChanged();
}
}