public void ExpressionRunTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree("((1 = 2 - 1) AND 2 + 3 = 4) OR ( (0 = 0 AND 1 = 1) OR 5 = 7 )"); var result = expr.GetExprValue(); Assert.True((bool?)result.Value == true); }
public void ExpressionParseAndTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var result = expEngine.BuildExpressionTree("c.CustomerId = 12 AND c.CompanyName = 'ahyu' AND c.EmailAddress = '@p1' AND c.ModifiedDate = '@p2'"); Assert.Equal(SqlExpressionEngine.ExprType.Expr, result.Type); Assert.NotNull(result.Left); Assert.NotNull(result.Right); }
public EntityFrameworkQueryControllerConfiguration(QueryControllerParameters parameters) { Storage = new FileStoreSchemaStorage(); Resolver = new SqlJsonObjectResolver(); ExpressionEngine = new SqlExpressionEngine(Resolver); Reader = new EntityFrameworkStoreSchemaReader(); ReaderParameters = new EntityFrameworkStoreSchemaReaderParameters { DbContextType = parameters.DbContextType }; }
public JsonSchemaQueryControllerConfiguration(QueryControllerParameters parameters) { Storage = new FileStoreSchemaStorage(); Resolver = new SqlJsonObjectResolver(); ExpressionEngine = new SqlExpressionEngine(Resolver); Reader = new JsonStoreSchemaReader(Storage); ReaderParameters = new JsonStoreSchemaReaderParameters { SchemaFile = parameters.SchemaFilename }; }
public void ExpressionParseTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var result = expEngine.BuildExpressionTree( "((p.project_id = @p1) AND a.allocation_id = @p2) OR ((p.project_id = 0 AND a.allocation_id = 0) OR u.last_name = 'admin')"); Assert.Equal(SqlExpressionEngine.ExprType.Expr, result.Type); Assert.NotNull(result.Left); Assert.NotNull(result.Right); }
public void ReadFromSqlExprTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree("c.CustomerId = 12 AND c.CompanyName = 'ahyu' AND c.EmailAddress = @p1 AND c.ModifiedDate = @p2"); var result = QueryExpressionHelper.ReadFromSqlExpr(expr); Assert.Equal("ModifiedDate", result.Right.Left.QueryField.Field.FieldName); Assert.Equal("=", result.Right.Operator); Assert.Equal("@p2", result.Right.Right.Param); }
public void ExpressionParseToStringAndPriorityMappedTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree("p.project_id = @p1 AND a.allocation_id = @p2 OR p.project_id = 0"); var result = QueryExpressionHelper.ReadFromSqlExpr(expr); var text = QueryExpressionHelper.QueryExprToString(result, QueryExpressionHelper.CSharpOperatorsMap); Assert.Equal("((p.project_id == @p1) && (a.allocation_id == @p2)) || (p.project_id == 0)", text); }
public void ExpressionParseToStringOrPriorityParensTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree("p.project_id = @p1 AND (a.allocation_id = @p2 OR p.project_id = 0)"); var result = QueryExpressionHelper.ReadFromSqlExpr(expr); var text = QueryExpressionHelper.QueryExprToString(result); Assert.Equal("(p.project_id = @p1) AND ((a.allocation_id = @p2) OR (p.project_id = 0))", text); }
public void ExpressionParseToStringTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree( "((p.project_id = @p1) AND a.allocation_id = @p2) OR ((p.project_id = 0 AND a.allocation_id = 0) OR u.last_name = 'admin')"); var result = QueryExpressionHelper.ReadFromSqlExpr(expr); var text = QueryExpressionHelper.QueryExprToString(result); Assert.Equal("((p.project_id = @p1) AND (a.allocation_id = @p2)) OR (((p.project_id = 0) AND (a.allocation_id = 0)) OR (u.last_name = 'admin'))", text); }
public void GetParamsFromSqlExprTest() { var res = new SqlJsonObjectResolver(); var expEngine = new SqlExpressionEngine(res); var expr = expEngine.BuildExpressionTree("c.CustomerId = 12 AND c.CompanyName = 'ahyu' AND @p1 = c.EmailAddress AND (c.ModifiedDate = @p2)"); var dict = QueryExpressionHelper.GetParamsFromSqlExpr(expr); Assert.Equal(2, dict.Values.Count); Assert.Contains("@p1", dict.Keys); Assert.Contains("@p2", dict.Keys); Assert.Equal("c.EmailAddress", dict["@p1"]); Assert.Equal("c.ModifiedDate", dict["@p2"]); }
public void LoadSimpleSubQueryTest() { var resolver = new SqlJsonObjectResolver(); var sqlExpressionEngine = new SqlExpressionEngine(resolver); var rules = new BuilderRuleFactory <IQueryBuilderRule, IQueryControllerModel>(); var engine = new QueryBuilderEngine(sqlExpressionEngine, rules); var storage = new FileStoreSchemaStorage(); var parameters = new StorageParameters { FileName = "Getq1List.json", Path = @"C:\Repos\MasterDetailsDataEntry\SqlForms.Demo\StoreNew\" }; var storeQuery = storage.LoadQuery(parameters); var reader = new JsonStoreSchemaReader(storage); var schema = reader.ReadSchema(new JsonStoreSchemaReaderParameters { SchemaFile = @"C:\Repos\MasterDetailsDataEntry\SqlForms.Demo\StoreNew\Crm2.Schema.json" }); var result = engine.LoadQueryFromStoreQuery(schema, storeQuery); }