public void Add( FilterExpression.BinaryOperation binaryOperator, GridKnownFunction function, params object[] values) { this.Add(new FilterPredicate(binaryOperator, function, values)); }
public FilterPredicate( FilterExpression.BinaryOperation binaryOperator, GridKnownFunction function) { this.binaryOperator = binaryOperator; this.function = function; this.filterFunction = FilterFunction.GetFilterFunction(this.function); }
public FilterExpression( string fieldName, FilterExpression.BinaryOperation binaryOperation, GridKnownFunction function, params object[] values) : this(binaryOperation, function, values) { this.PropertyName = fieldName; }
public FilterExpression( FilterExpression.BinaryOperation binaryOperation, GridKnownFunction function, params object[] values) : this() { this.LogicalOperator = GridViewHelper.GetLogicalOperator(binaryOperation); this.predicates.Add(new FilterPredicate(FilterExpression.BinaryOperation.AND, function, values)); }
internal static FilterOperator GetFilterOperator(GridKnownFunction function) { switch (function) { case GridKnownFunction.Contains: return(FilterOperator.Contains); case GridKnownFunction.DoesNotContain: return(FilterOperator.NotContains); case GridKnownFunction.StartsWith: return(FilterOperator.StartsWith); case GridKnownFunction.EndsWith: return(FilterOperator.EndsWith); case GridKnownFunction.EqualTo: return(FilterOperator.IsEqualTo); case GridKnownFunction.NotEqualTo: return(FilterOperator.IsNotEqualTo); case GridKnownFunction.GreaterThan: return(FilterOperator.IsGreaterThan); case GridKnownFunction.LessThan: return(FilterOperator.IsLessThan); case GridKnownFunction.GreaterThanOrEqualTo: return(FilterOperator.IsGreaterThanOrEqualTo); case GridKnownFunction.LessThanOrEqualTo: return(FilterOperator.IsLessThanOrEqualTo); case GridKnownFunction.IsEmpty: return(FilterOperator.IsLike); case GridKnownFunction.NotIsEmpty: return(FilterOperator.IsNotLike); case GridKnownFunction.IsNull: return(FilterOperator.IsNull); case GridKnownFunction.NotIsNull: return(FilterOperator.IsNotNull); default: return(FilterOperator.None); } }
public FilterPredicate( FilterExpression.BinaryOperation binaryOperator, GridKnownFunction function, params object[] values) : this(binaryOperator, function) { if (values == null) { return; } for (int index = 0; index < Math.Min(2, values.Length); ++index) { this.values.Add(values[index]); } }
private static string GetCompositeExpression( string name, GridKnownFunction function, params object[] values) { if (function != GridKnownFunction.Between && function != GridKnownFunction.NotBetween) { return((string)null); } string str1 = values[0] is string? "'" + values[0] + "'" : values[0].ToString(); string str2 = values[1] is string? "'" + values[1] + "'" : values[1].ToString(); if (function == GridKnownFunction.Between) { return(string.Format("{0} >= {1} AND {0} <= {2}", (object)name, (object)str1, (object)str2)); } return(string.Format("NOT ({0} >= {1} AND {0} <= {2})", (object)name, (object)str1, (object)str2)); }
private void SetFilterParameters(IndGridBoundColumn col, out string comparerStart, out string comparerEnd, out GridKnownFunction function) { comparerStart = String.Empty; comparerEnd = String.Empty; function = GridKnownFunction.NoFilter; if (IsColumnNumeric(col)) { comparerStart = "= "; comparerEnd = String.Empty; function = GridKnownFunction.EqualTo; } if (col.DataType == typeof(string)) { comparerStart = "LIKE '%"; comparerEnd = "%'"; function = GridKnownFunction.Contains; } if (col.DataType == typeof(DateTime)) { //comparerStart = "= '"; //comparerEnd = "'"; function = GridKnownFunction.Between; } }
private void FilterSpecialColumn(IndGridBoundColumn col, IndFilterItem filterItem, string comparerStart, string comparerEnd, GridKnownFunction function) { if (col.Cell.Controls[1] is DropDownList) { DropDownList d = (DropDownList)col.Cell.Controls[1]; if (filterItem.FilterExpression.Length == 0) { filterItem.FilterExpression.Append("([" + col.UniqueName + "] " + comparerStart + ((d.SelectedValue == "All") ? String.Empty : d.SelectedValue) + comparerEnd); } else { filterItem.FilterExpression.Append(" AND [" + col.UniqueName + "] " + comparerStart + ((d.SelectedValue == "All") ? String.Empty : d.SelectedValue) + comparerEnd); } col.CurrentFilterFunction = function; col.CurrentFilterValue = ((d.SelectedValue == "All") ? String.Empty : d.SelectedValue); filterItem.FilterValues.Add(col.UniqueName, (d.SelectedValue == "All") ? String.Empty : d.SelectedValue); } if (col.Cell.Controls[1] is IndDatePicker) { IndDatePicker datePicker = (IndDatePicker)col.Cell.Controls[1]; if (datePicker.SelectedDate != null) { if (filterItem.FilterExpression.Length == 0) { filterItem.FilterExpression.Append("([" + col.UniqueName + "] >= '" + ((DateTime)datePicker.SelectedDate).ToShortDateString() + " 00:00:00.000' AND " + "[" + col.UniqueName + "] <= '" + ((DateTime)datePicker.SelectedDate).ToShortDateString() + " 23:59:59.999'"); } else { filterItem.FilterExpression.Append(" AND [" + col.UniqueName + "] >= '" + ((DateTime)datePicker.SelectedDate).ToShortDateString() + " 00:00:00.000' AND " + "[" + col.UniqueName + "] <= '" + ((DateTime)datePicker.SelectedDate).ToShortDateString() + " 23:59:59.999'"); } } col.CurrentFilterFunction = function; col.CurrentFilterValue = (datePicker.SelectedDate != null) ? ((DateTime)datePicker.SelectedDate).ToShortDateString() : null; filterItem.FilterValues.Add(col.UniqueName, (datePicker.SelectedDate != null) ? ((DateTime)datePicker.SelectedDate).ToShortDateString() : String.Empty); } }
private void FilterCommonColumn(IndGridBoundColumn col, string value, IndFilterItem filterItem, string comparerStart, string comparerEnd, GridKnownFunction function) { if (String.IsNullOrEmpty(value)) { col.CurrentFilterFunction = function; col.CurrentFilterValue = value; return; } if (filterItem.FilterExpression.Length == 0) { filterItem.FilterExpression.Append("([" + col.UniqueName + "] " + comparerStart + value + comparerEnd); } else { filterItem.FilterExpression.Append(" AND [" + col.UniqueName + "] " + comparerStart + value + comparerEnd); } col.CurrentFilterFunction = function; col.CurrentFilterValue = value.Replace("''", "'"); filterItem.FilterValues.Add(col.UniqueName, value.Replace("''", "'")); }
private static string GetSingleExpression( string name, GridKnownFunction gridKnownFunction, params object[] values) { string str1 = string.Empty; string str2 = string.Empty; if (values.Length > 0) { str1 = values[0] is string? "'" + values[0] + "'" : values[0].ToString(); str2 = DataUtils.EscapeLikeValue(values[0].ToString()); } switch (gridKnownFunction) { case GridKnownFunction.Contains: return(string.Format("{0} LIKE '%{1}%'", (object)name, (object)str2)); case GridKnownFunction.DoesNotContain: return(string.Format("{0} NOT LIKE '%{1}%'", (object)name, (object)str2)); case GridKnownFunction.StartsWith: return(string.Format("{0} LIKE '{1}%'", (object)name, (object)str2)); case GridKnownFunction.EndsWith: return(string.Format("{0} LIKE '%{1}'", (object)name, (object)str2)); case GridKnownFunction.EqualTo: return(string.Format("{0} = {1}", (object)name, (object)str1)); case GridKnownFunction.NotEqualTo: return(string.Format("{0} <> {1}", (object)name, (object)str1)); case GridKnownFunction.GreaterThan: return(string.Format("{0} > {1}", (object)name, (object)str1)); case GridKnownFunction.LessThan: return(string.Format("{0} < {1}", (object)name, (object)str1)); case GridKnownFunction.GreaterThanOrEqualTo: return(string.Format("{0} >= {1}", (object)name, (object)str1)); case GridKnownFunction.LessThanOrEqualTo: return(string.Format("{0} <= {1}", (object)name, (object)str1)); case GridKnownFunction.IsEmpty: return(string.Format("{0} LIKE ''", (object)name)); case GridKnownFunction.NotIsEmpty: return(string.Format("{0} NOT LIKE ''", (object)name)); case GridKnownFunction.IsNull: return(string.Format("{0} IS NULL", (object)name)); case GridKnownFunction.NotIsNull: return(string.Format("NOT ({0} IS NULL)", (object)name)); default: return((string)null); } }
protected virtual string GetFilterExpression(GridKnownFunction filterFunction, string columnName, string columnValue, bool isDynamicQuery) { var quatationMark = isDynamicQuery ? "''" : "'"; switch (filterFunction) { case GridKnownFunction.NoFilter: break; case GridKnownFunction.Contains: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] LIKE {quatationMark}%{columnValue}%{quatationMark})"); } break; case GridKnownFunction.DoesNotContain: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] NOT LIKE {quatationMark}%{columnValue}%{quatationMark})"); } break; case GridKnownFunction.StartsWith: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] LIKE {quatationMark}{columnValue}%{quatationMark})"); } break; case GridKnownFunction.EndsWith: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] LIKE {quatationMark}%{columnValue}{quatationMark})"); } break; case GridKnownFunction.EqualTo: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] = {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.NotEqualTo: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] <> {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.GreaterThan: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] > {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.LessThan: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] < {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.GreaterThanOrEqualTo: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] >= {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.LessThanOrEqualTo: if (!string.IsNullOrEmpty(columnValue)) { return($@"([{columnName}] <= {quatationMark}{columnValue}{quatationMark})"); } break; case GridKnownFunction.Between: break; case GridKnownFunction.NotBetween: break; case GridKnownFunction.IsEmpty: return($@"([{columnName}] = {quatationMark}{quatationMark})"); case GridKnownFunction.NotIsEmpty: return($@"([{columnName}] <> {quatationMark}{quatationMark})"); case GridKnownFunction.IsNull: return($@"([{columnName}] IS NULL)"); case GridKnownFunction.NotIsNull: return($@"(NOT ([{columnName}] IS NULL))"); case GridKnownFunction.Custom: break; default: break; } return(string.Empty); }
public static FilterFunction GetFilterFunction(GridKnownFunction function) { FilterFunction filterFunction; if (!FilterFunction.functionDictionary.ContainsKey(function)) { switch (function) { case GridKnownFunction.NoFilter: filterFunction = (FilterFunction) new NoFilterFunction(); break; case GridKnownFunction.Contains: filterFunction = (FilterFunction) new ContainsFunction(); break; case GridKnownFunction.DoesNotContain: filterFunction = (FilterFunction) new DoesNotContainFunction(); break; case GridKnownFunction.StartsWith: filterFunction = (FilterFunction) new StartsWithFunction(); break; case GridKnownFunction.EndsWith: filterFunction = (FilterFunction) new EndsWithFunction(); break; case GridKnownFunction.EqualTo: filterFunction = (FilterFunction) new EqualToFunction(); break; case GridKnownFunction.NotEqualTo: filterFunction = (FilterFunction) new NotEqualToFunction(); break; case GridKnownFunction.GreaterThan: filterFunction = (FilterFunction) new GreaterThanFunction(); break; case GridKnownFunction.LessThan: filterFunction = (FilterFunction) new LessThanFunction(); break; case GridKnownFunction.GreaterThanOrEqualTo: filterFunction = (FilterFunction) new GreaterThanOrEqualToFunction(); break; case GridKnownFunction.LessThanOrEqualTo: filterFunction = (FilterFunction) new LessThanOrEqualToFunction(); break; case GridKnownFunction.Between: filterFunction = (FilterFunction) new BetweenFunction(); break; case GridKnownFunction.NotBetween: filterFunction = (FilterFunction) new NotBetweenFunction(); break; case GridKnownFunction.IsEmpty: filterFunction = (FilterFunction) new IsEmptyFunction(); break; case GridKnownFunction.NotIsEmpty: filterFunction = (FilterFunction) new NotIsEmptyFunction(); break; case GridKnownFunction.IsNull: filterFunction = (FilterFunction) new IsNullFunction(); break; case GridKnownFunction.NotIsNull: filterFunction = (FilterFunction) new NotIsNullFunction(); break; default: return((FilterFunction)null); } FilterFunction.functionDictionary.Add(function, filterFunction); } else { filterFunction = FilterFunction.functionDictionary[function]; } return(filterFunction); }