Skip to content

Instantly share code, notes, and snippets.

@angelovstanton
Created November 29, 2015 12:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save angelovstanton/2b4a0c8bd7da914c8f0c to your computer and use it in GitHub Desktop.
Save angelovstanton/2b4a0c8bd7da914c8f0c to your computer and use it in GitHub Desktop.
public void Filter(string columnName, FilterOperator filterOperator, string filterValue)
{
this.Filter(new GridFilter(columnName, filterOperator, filterValue));
}
public void Filter(params GridFilter[] gridFilters)
{
string jsToBeExecuted = this.GetGridReference();
StringBuilder sb = new StringBuilder();
sb.Append(jsToBeExecuted);
sb.Append("grid.dataSource.filter({ logic: \"and\", filters: [");
foreach (var currentFilter in gridFilters)
{
DateTime filterDateTime;
bool isFilterDateTime = DateTime.TryParse(currentFilter.FilterValue, out filterDateTime);
string filterValueToBeApplied =
isFilterDateTime ? string.Format("new Date({0}, {1}, {2})", filterDateTime.Year, filterDateTime.Month - 1, filterDateTime.Day) :
string.Format("\"{0}\"", currentFilter.FilterValue);
string kendoFilterOperator = this.ConvertFilterOperatorToKendoOperator(currentFilter.FilterOperator);
sb.Append(string.Concat("{ field: \"", currentFilter.ColumnName, "\", operator: \"", kendoFilterOperator, "\", value: ", filterValueToBeApplied, " },"));
}
sb.Append("] });");
jsToBeExecuted = sb.ToString().Replace(",]", "]");
this.driver.ExecuteScript(jsToBeExecuted);
}
private string ConvertFilterOperatorToKendoOperator(FilterOperator filterOperator)
{
string kendoFilterOperator = string.Empty;
switch (filterOperator)
{
case FilterOperator.EqualTo:
kendoFilterOperator = "eq";
break;
case FilterOperator.NotEqualTo:
kendoFilterOperator = "neq";
break;
case FilterOperator.LessThan:
kendoFilterOperator = "lt";
break;
case FilterOperator.LessThanOrEqualTo:
kendoFilterOperator = "lte";
break;
case FilterOperator.GreaterThan:
kendoFilterOperator = "gt";
break;
case FilterOperator.GreaterThanOrEqualTo:
kendoFilterOperator = "gte";
break;
case FilterOperator.StartsWith:
kendoFilterOperator = "startswith";
break;
case FilterOperator.EndsWith:
kendoFilterOperator = "endswith";
break;
case FilterOperator.Contains:
kendoFilterOperator = "contains";
break;
case FilterOperator.NotContains:
kendoFilterOperator = "doesnotcontain";
break;
case FilterOperator.IsAfter:
kendoFilterOperator = "gt";
break;
case FilterOperator.IsAfterOrEqualTo:
kendoFilterOperator = "gte";
break;
case FilterOperator.IsBefore:
kendoFilterOperator = "lt";
break;
case FilterOperator.IsBeforeOrEqualTo:
kendoFilterOperator = "lte";
break;
default:
throw new ArgumentException("The specified filter operator is not supported.");
}
return kendoFilterOperator;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment