/// File Name : Filter Kendo Grid /// Objective: This file contains functions which create a db query on given filter string. /// Requirement : Filed name must be as db fields name. /// Create By: Preeti Burad namespace GODATA.Models.FilterKendoGrid { using System; public class FilterKendoGrid { /// /// This function returns expression. /// /// Filter operator /// Value on which base we have to filter /// expression of operator and value public static string GetExpression(String filterOperator, string filterValue, string filterColumnName) { string op = string.Empty; if (filterOperator == "contains") { if (filterColumnName.Trim().ToUpper() == ("TotalTicketLifeCycleTimeSlab").ToUpper() || filterColumnName.Trim().ToUpper() == ("DefaultSlaTime").ToUpper() || filterColumnName.Trim().ToUpper() == ("Age").ToUpper() || filterColumnName.Trim().ToUpper() == ("vehicle_instalation_date").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_1").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_3").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_4").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_5").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_2").ToUpper()) { op = "like " + "'" + "%" + filterValue.Replace("'", "") + "%" + "'"; } else { if (filterValue.Trim().Contains(")") == true) { filterValue = filterValue.Trim().Replace(")", ""); op = "like trim(upper('%" + filterValue.Replace("'", "") + "%'))"; op = op + ")"; } else { op = "like trim(upper('%" + filterValue.Replace("'", "") + "%'))"; } } } else if (filterOperator == "doesnotcontain") { if (filterColumnName.Trim().ToUpper() == ("TotalTicketLifeCycleTimeSlab").ToUpper() || filterColumnName.Trim().ToUpper() == ("DefaultSlaTime").ToUpper() || filterColumnName.Trim().ToUpper() == ("Age").ToUpper() || filterColumnName.Trim().ToUpper() == ("vehicle_instalation_date").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_1").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_3").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_4").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_5").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_2").ToUpper()) { op = "not like " + "'" + "%" + filterValue.Replace("'", "") + "%" + "'"; } else { op = "not like trim(upper('%" + filterValue.Replace("'", "") + "%'))"; } } else if (filterOperator == "endswith") { if (filterColumnName.Trim().ToUpper() == ("TotalTicketLifeCycleTimeSlab").ToUpper() || filterColumnName.Trim().ToUpper() == ("DefaultSlaTime").ToUpper() || filterColumnName.Trim().ToUpper() == ("Age").ToUpper() || filterColumnName.Trim().ToUpper() == ("vehicle_instalation_date").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_1").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_3").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_4").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_5").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_2").ToUpper()) { op = "like " + "'" + "%" + filterValue.Replace("'", "") + "'"; } else { op = "like trim(upper('%" + filterValue.Replace("'", "") + "'))"; } } else if (filterOperator == "startswith") { if (filterColumnName.Trim().ToUpper() == ("TotalTicketLifeCycleTimeSlab").ToUpper() || filterColumnName.Trim().ToUpper() == ("DefaultSlaTime").ToUpper() || filterColumnName.Trim().ToUpper() == ("Age").ToUpper() || filterColumnName.Trim().ToUpper() == ("vehicle_instalation_date").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_1").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_3").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_4").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_5").ToUpper() || filterColumnName.Trim().ToUpper() == ("time_stamps_status_2").ToUpper()) { op = "like" + "'" + filterValue.Replace("'", "") + "%" + "'"; } else { op = "like trim(upper('" + filterValue.Replace("'", "") + "%'))"; } } if (filterOperator == "eq") { op = "=" + filterValue; } else if (filterOperator == "neq") { op = "<>" + filterValue; } else if (filterOperator == "lt") { op = "<" + filterValue; } else if (filterOperator == "lte") { op = "<=" + filterValue; } else if (filterOperator == "gt") { op = ">" + filterValue; } else if (filterOperator == "gte") { op = ">=" + filterValue; } else { } return op; } /// /// This function Create a query on given filter data. /// /// Filter data on which we want to create db query. /// Query in string form. /// /// This function Create a query on given filter data. /// /// Filter data on which we want to create db query. /// Query in string form. public static string CreateFilterQuery(string objFilter) { string query = null; // split Filter data into array. var filterArr = objFilter.Split('~'); // Length of filter string array int len = filterArr.Length; int i = 0; // creating query (Field name, operator, value) while (i < len) { //if (filterArr[i].Trim().ToUpper() == ("creation_time").ToUpper()) //{ // query += filterArr[i] + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], Convert.ToDateTime(filterArr[i + 2].Replace("datetime", String.Empty)).ToString("yyyy-MM-dd hh:mm:ss")); //} //else if (filterArr[i].Trim().ToUpper() == ("TotalTicketLifeCycleTimeSlab").ToUpper() || filterArr[i].Trim().ToUpper() == ("DefaultSlaTime").ToUpper() || filterArr[i].Trim().ToUpper() == ("Age").ToUpper() || filterArr[i].Trim().ToUpper() == ("vehicle_instalation_date").ToUpper() || filterArr[i].Trim().ToUpper() == ("time_stamps_status_1").ToUpper() || filterArr[i].Trim().ToUpper() == ("time_stamps_status_3").ToUpper() || filterArr[i].Trim().ToUpper() == ("time_stamps_status_4").ToUpper() || filterArr[i].Trim().ToUpper() == ("time_stamps_status_5").ToUpper() || filterArr[i].Trim().ToUpper() == ("time_stamps_status_2").ToUpper()) { query += filterArr[i] + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { if (filterArr[i + 1] == "contains" || filterArr[i + 1] == "doesnotcontain" || filterArr[i + 1] == "endswith" || filterArr[i + 1] == "startswith") { if (filterArr[i] == "(ticketid_alias)") { query += "("; } query += "trim(upper(" + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { if (filterArr[i] == "(vehicle_emission_norms)") { query += "("; } if (filterArr[i] == "(VehicleTagging)") { query += "("; } if (filterArr[i] == "(DealerDealerName)") { query += "("; } query += "trim(upper(" + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], "trim(upper(" + filterArr[i + 2] + "))", filterArr[i]); } } i += 3; if (i < len - 1) { query += ' ' + filterArr[i] + ' '; i++; } } return query; } /// /// This function Create a query on given filter data. /// /// Filter data on which we want to create db query. /// Query in string form. public static string CreateFilterQueryEscalation(string objFilter) { string query = null; // split Filter data into array. var filterArr = objFilter.Split('~'); // Length of filter string array int len = filterArr.Length; int i = 0; // creating query (Field name, operator, value) while (i < len) { //if (filterArr[i].Trim().ToUpper() == ("creation_time").ToUpper()) //{ // query += filterArr[i] + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], Convert.ToDateTime(filterArr[i + 2].Replace("datetime", String.Empty)).ToString("yyyy-MM-dd hh:mm:ss")); //} //else if (filterArr[i].Trim().ToUpper() == ("alarm_age").ToUpper() || filterArr[i].Trim().ToUpper() == ("alarm_age_sla_not_met").ToUpper() || filterArr[i].Trim().ToUpper() == ("alarm_age_ticket_not_closed").ToUpper() || filterArr[i].Trim().ToUpper() == ("alarm_age_van_not_live").ToUpper() || filterArr[i].Trim().ToUpper() == ("alarm_age_eicher_promise_48hrs").ToUpper()) { query += "alarm_escalation_escalationlevel." + filterArr[i] + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else if (filterArr[i].Trim().ToUpper() == ("dealer_name_id").ToUpper()) { filterArr[i] = "dealer_name"; if (filterArr[i + 1] == "contains" || filterArr[i + 1] == "doesnotcontain" || filterArr[i + 1] == "endswith" || filterArr[i + 1] == "startswith") { query += "trim(upper(alarm_escalation_escalationlevel." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { query += "trim(upper(alarm_escalation_escalationlevel." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], "trim(upper(" + filterArr[i + 2] + "))", filterArr[i]); } } else if (filterArr[i].Trim().ToUpper() == ("dealer_name").ToUpper()) { if (filterArr[i + 1] == "contains" || filterArr[i + 1] == "doesnotcontain" || filterArr[i + 1] == "endswith" || filterArr[i + 1] == "startswith") { query += "trim(upper(_dealer." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { query += "trim(upper(_dealer." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], "trim(upper(" + filterArr[i + 2] + "))", filterArr[i]); } } else if (filterArr[i].Trim().ToUpper() == ("organization_name").ToUpper()) { if (filterArr[i + 1] == "contains" || filterArr[i + 1] == "doesnotcontain" || filterArr[i + 1] == "endswith" || filterArr[i + 1] == "startswith") { query += "trim(upper(organization_organization." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { query += "trim(upper(organization_organization." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], "trim(upper(" + filterArr[i + 2] + "))", filterArr[i]); } } else { if (filterArr[i + 1] == "contains" || filterArr[i + 1] == "doesnotcontain" || filterArr[i + 1] == "endswith" || filterArr[i + 1] == "startswith") { query += "trim(upper(alarm_escalation_escalationlevel." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], filterArr[i + 2], filterArr[i]); } else { query += "trim(upper(alarm_escalation_escalationlevel." + filterArr[i] + "))" + ' ' + FilterKendoGrid.GetExpression(filterArr[i + 1], "trim(upper(" + filterArr[i + 2] + "))", filterArr[i]); } } i += 3; if (i < len - 1) { query += ' ' + filterArr[i] + ' '; i++; } } return query; } } }