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);
        }
Exemple #3
0
 public EntityFrameworkQueryControllerConfiguration(QueryControllerParameters parameters)
 {
     Storage          = new FileStoreSchemaStorage();
     Resolver         = new SqlJsonObjectResolver();
     ExpressionEngine = new SqlExpressionEngine(Resolver);
     Reader           = new EntityFrameworkStoreSchemaReader();
     ReaderParameters = new EntityFrameworkStoreSchemaReaderParameters {
         DbContextType = parameters.DbContextType
     };
 }
Exemple #4
0
 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"]);
        }
Exemple #11
0
 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);
 }