269 lines
14 KiB
C#
269 lines
14 KiB
C#
/// 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
|
|
{
|
|
/// <summary>
|
|
/// This function returns expression.
|
|
/// </summary>
|
|
/// <param name="filterOperator">Filter operator</param>
|
|
/// <param name="filterValue">Value on which base we have to filter</param>
|
|
/// <returns>expression of operator and value</returns>
|
|
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;
|
|
}
|
|
/// <summary>
|
|
/// This function Create a query on given filter data.
|
|
/// </summary>
|
|
/// <param name="objFilter">Filter data on which we want to create db query.</param>
|
|
/// <returns>Query in string form.</returns>
|
|
/// <summary>
|
|
/// This function Create a query on given filter data.
|
|
/// </summary>
|
|
/// <param name="objFilter">Filter data on which we want to create db query.</param>
|
|
/// <returns>Query in string form.</returns>
|
|
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// This function Create a query on given filter data.
|
|
/// </summary>
|
|
/// <param name="objFilter">Filter data on which we want to create db query.</param>
|
|
/// <returns>Query in string form.</returns>
|
|
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;
|
|
}
|
|
}
|
|
} |