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)); }