private static string GetSqlOperator(CompareOperators op) { switch (op) { case CompareOperators.Equals: return("=="); case CompareOperators.NotEquals: return("!="); case CompareOperators.Gte: return(">="); case CompareOperators.Gt: return(">"); case CompareOperators.Lte: return("<="); case CompareOperators.Lt: return("<"); default: return(null); } }
public void ApplyFilter(CompareOperators filterOp, params string[] args) { if (filterOp == CompareOperators.Auto || filterOp == CompareOperators.None || args == null || args.Length <= 0) { FilterArgument = null; FilterText = null; FilterOperator = CompareOperators.None; Parent?.QueueDataUpdate(); return; } FilterOperator = filterOp; if (FilterOperator == CompareOperators.Multiple) { FilterText = null; FilterArgument = args; } else { FilterText = args[0]; var arguments = new List <string>(args.Length - 1); for (var i = 1; i < args.Length; i++) { arguments.Add(args[i]); } FilterArgument = arguments.ToArray(); } Parent?.QueueDataUpdate(); }
/// <summary> /// Преобразовать оператор сравнения в строку. /// </summary> private static string OperToString(CompareOperators oper) { return(oper switch { CompareOperators.Equal => " = ", CompareOperators.NotEqual => " <> ", CompareOperators.LessThan => " < ", CompareOperators.LessThanEqual => " <= ", CompareOperators.GreaterThan => " > ", CompareOperators.GreaterThanEqual => " >= ", _ => "" });
/// <summary> /// Consturctor using the condition as string and setting properties by splitting the string /// </summary> /// <param name="conditionString">The complete condition as string</param> private SimpleCondition(string conditionString) : base() { // <Resource>|<State> <EqualityOperator> <StateValue> Value = conditionString; var a = Globals.Conditions; var splits = conditionString.Split('|'); Resource = splits[0].Trim(); var equop = CompareOperators.Where(op => splits[1].Contains(op)).FirstOrDefault(); CompareOperator = equop; State = splits[1].Split(CompareOperator, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault().Trim(); StateValue = splits[1].Split(CompareOperator, StringSplitOptions.RemoveEmptyEntries).LastOrDefault().Trim(); }
public void FilterIdTests(IQueryable <Thing> filterCount, CompareOperators compareOperator) { var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithIdFilter("20", compareOperator) }; var response = request.CreateGridDataResponse(DataSource); Assert.AreEqual(data.Count, response.Payload.Count, $"Test {compareOperator}"); Assert.AreEqual(data[0].Id, response.Payload[0][0], "Same Id"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public static GridColumn[] GetColumnsWithIdFilter(string filter, CompareOperators oper) => new[] { new GridColumn { Name = "Id", FilterText = filter, FilterOperator = oper, DataType = DataType.Numeric }, new GridColumn { Name = "Name" }, new GridColumn { Name = "Date" }, new GridColumn { Name = "IsShipped" } };
public static GridColumn[] GetColumnsWithBooleanFilter(string filter, CompareOperators oper) => new[] { new GridColumn { Name = "Id" }, new GridColumn { Name = "Name" }, new GridColumn { Name = "Date" }, new GridColumn { Name = "IsShipped", Searchable = false, FilterText = filter, FilterOperator = oper, DataType = DataType.Boolean, } };
private ASTNode Comparision() { if (_currentToken.Type == TokenType.ConstBool) { var token = _currentToken; Eat(TokenType.ConstBool); return(new ASTBool(token)); } var node = ArithmeticExpression(); while (CompareOperators.Contains(_currentToken.Type)) { var token = _currentToken; Eat(token.Type); node = new ASTBinaryOperator(node, token, ArithmeticExpression()); } return(node); }
/// <summary> /// Преобразовать оператор сравнения в строку /// </summary> private string OperToString(CompareOperators oper) { switch (oper) { case CompareOperators.Equal: return(" = "); case CompareOperators.NotEqual: return(" <> "); case CompareOperators.LessThan: return(" < "); case CompareOperators.LessThanEqual: return(" <= "); case CompareOperators.GreaterThan: return(" > "); default: // CompareOperators.GreaterThanEqual return(" >= "); } }
public static GridColumn[] GetColumnsWithMultipleFilter(string[] arguments, CompareOperators oper) => new[] { new GridColumn { Name = "Id" }, new GridColumn { Name = "Name" }, new GridColumn { Name = "Date" }, new GridColumn { Name = "IsShipped" }, new GridColumn { Name = "Color", FilterArgument = arguments, FilterOperator = oper, DataType = DataType.String } };
private static string?GetSqlOperator(CompareOperators op) => op switch {
// TODO: This code is for use with Dynamic LINQ, but It needs EF //private static bool isDynamicLinqReady = false; //private static void FixDynamicLinq() //{ // var type = typeof(DynamicQueryable).Assembly.GetType("System.Linq.Dynamic.ExpressionParser"); // FieldInfo field = type.GetField("predefinedTypes", BindingFlags.Static | BindingFlags.NonPublic); // Type[] predefinedTypes = (Type[])field.GetValue(null); // Array.Resize(ref predefinedTypes, predefinedTypes.Length + 1); // predefinedTypes[predefinedTypes.Length - 1] = typeof(EntityFunctions); // Your type // field.SetValue(null, predefinedTypes); //} private static string GetSqlOperator(CompareOperators op) { switch (op) { case CompareOperators.Equals: return "=="; case CompareOperators.NotEquals: return "!="; case CompareOperators.Gte: return ">="; case CompareOperators.Gt: return ">"; case CompareOperators.Lte: return "<="; case CompareOperators.Lt: return "<"; default: return null; } }