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(); } }