Example #1
0
        public async Task <IReadOnlyList <CloudResources> > FetchCloudResourcesAsync(QueryBuilderFilterRule query)
        {
            var efQuery = _environmentsDbContext.CloudResources
                          .Include(x => x.Tags)
                          .Include(x => x.CloudAccount)
                          .AsNoTracking()
                          .BuildQuery(query, new BuildExpressionOptions());

            var result = await efQuery.ToListAsync();

            return(result);
        }
        public void CustomInOperator_Test()
        {
            var rec = new MyRecord();

            rec.UserHostAddress = "8.10.8.13";

            var records = new List <MyRecord>()
            {
                rec
            };

            var myFilter = new QueryBuilderFilterRule()
            {
                Condition = "and",
                Rules     = new List <QueryBuilderFilterRule>()
                {
                    new QueryBuilderFilterRule()
                    {
                        Condition = "and",
                        Field     = "UserHostAddress",
                        Operator  = "in_ip_range",
                        Type      = "string",
                        Value     = new [] { "10.10.10.*" }
                    }
                }
            };
            var options = new  BuildExpressionOptions();

            options.Operators = new List <IFilterOperator>()
            {
                new InIpRangeOperator()
            };
            var result = records.AsQueryable().BuildQuery <MyRecord>(myFilter, options).ToList();
            var len    = result.Count;

            Assert.AreEqual(1, len);
        }
        public async Task <IActionResult> QueryResources([FromForm] QueryBuilderFilterRule query)
        {
            var result = await _envResourcesQueryService.FetchCloudResourcesAsync(query);

            return(Ok(result));
        }
        public JsonResult Index(QueryBuilderFilterRule obj)
        {
            var people = PersonBuilder.GetPeople().BuildQuery(obj).ToList();

            return(Json(people));
        }