public void BooleanFilterTests() { const string filter = "true"; var filterCount = DataSource.Where(x => x.IsShipped == bool.Parse(filter)); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithBooleanFilter(filter, CompareOperators.Equals) }; var response = request.CreateGridDataResponse(DataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public void MultipleFilterTest() { var filters = new[] { "blue", "red" }; var sut = DataSource.ToList(); var filterCount = sut.Where(x => x.Color.Equals(filters[0]) || x.Color.Equals(filters[1])); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithMultipleFilter(filters, CompareOperators.Multiple) }; var response = request.CreateGridDataResponse(sut.AsQueryable()); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public void DateTimeEqualFilterTest() { var filter = "2020-04-15T05:00:00.000Z"; var filterCount = DataSource.Where(x => x.Date.ToString(CultureInfo.InvariantCulture) == filter); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithDateFilter(filter, CompareOperators.Equals, DataType.Date) }; var response = request.CreateGridDataResponse(DataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public void SimpleSearch() { var dataSource = SampleEntities.GenerateData().AsQueryable(); var data = dataSource.Where(x => x.Name.Contains(SearchText)).Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, SearchText = SearchText, Columns = Thing.GetColumns() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Count(x => x.Name.Contains(SearchText)), response.FilteredRecordCount, "Total filtered rows matching"); }
public async Task <IHttpActionResult> GridDataWithFormat([FromBody] GridDataRequest request) { using (var context = new SampleDbContext()) { return (Ok( await Task.Run( () => request.CreateGridDataResponse( context.Orders.AsNoTracking().Select(x => new OrderDto { Amount = x.Amount.ToString(), CustomerName = x.CustomerName, IsShipped = x.IsShipped.ToString(), OrderID = x.OrderID, ShippedDate = x.ShippedDate.ToString(), ShipperCity = x.ShipperCity }), FormatOutput)))); } }
public void SimpleList() { var dataSource = _context.Things; var data = dataSource.Take(PageSize).ToList(); Assert.AreEqual(PageSize, data.Count, "Set has 10 items"); var request = new GridDataRequest() { Take = PageSize, Skip = 0, Search = new Filter(), Columns = Thing.GetColumns() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Count(), response.TotalRecordCount, "Total rows matching"); }
public void BetweenFilterTest() { const int a = 10; var b = new[] { "30" }; var filterCount = DataSource.Where(x => x.Id >= a && x.Id <= int.Parse(b[0])); var data = filterCount.Take(PageSize).ToList(); var request = new GridDataRequest { Take = PageSize, Skip = 0, Columns = Thing.GetColumnsWithBetweenFilter(a.ToString(), b) }; var response = request.CreateGridDataResponse(DataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data[0].Id, response.Payload[0][0], "Same Id"); Assert.AreEqual(filterCount.Count(), response.FilteredRecordCount, "Total filtered rows matching"); }
public void TestSimpleSearch2() { var dataSource = new List <Thing>(); for (var i = 0; i < 422; i++) { dataSource.Add(new() { Color = "red" }); dataSource.Add(new() { Color = "blue" }); dataSource.Add(new() { Color = "yellow" }); } var columns = new[] { new GridColumn { Name = "Color", Sortable = true, Searchable = true, DataType = DataType.String, SortOrder = 2 }, new GridColumn { Name = "Id" } }; var request = new GridDataRequest { Columns = columns, TimezoneOffset = 300, Take = 100, Skip = 300, SearchText = "red", }; var response = request.CreateGridDataResponse(dataSource.AsQueryable()); Assert.AreEqual(4, response.CurrentPage); }
public void TestSimpleAggregate() { var dataSource = _context.Things; var data = dataSource.Take(PageSize).ToList(); Assert.AreEqual(PageSize, data.Count, "Set has 10 items"); var request = new GridDataRequest() { Take = PageSize, Skip = 0, Search = new Filter(), Columns = Thing.GetColumnsWithAggregate() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Sum(x => x.Number), (double)response.AggregationPayload["Number"], "Same average number"); Assert.AreEqual(dataSource.Sum(x => x.DecimalNumber), (decimal)response.AggregationPayload["DecimalNumber"], "Same average decimal number"); }
public void SimpleSearch() { var dataSource = _context.Things; var data = dataSource.Where(x => x.Name.Contains(SearchText)).Take(PageSize).ToList(); var request = new GridDataRequest() { Take = PageSize, Skip = 0, Search = new Filter() { Operator = CompareOperators.Auto, Text = SearchText }, Columns = Thing.GetColumns() }; var response = request.CreateGridDataResponse(dataSource); Assert.AreEqual(data.Count, response.Payload.Count, "Same length"); Assert.AreEqual(data.First().Id, response.Payload.First().First(), "Same first item"); Assert.AreEqual(dataSource.Count(x => x.Name.Contains(SearchText)), response.FilteredRecordCount, "Total filtered rows matching"); }
public async Task <GridDataResponse> PostPeople([JsonGridDataRequest] GridDataRequest gridDataRequest) => gridDataRequest.CreateGridDataResponse((await Person.GetDataAsync().ConfigureAwait(false)).AsQueryable());
public object GridData([FromBody] GridDataRequest request) => request.CreateGridDataResponse(_context.Orders);
public IActionResult GetGridData([FromBody] GridDataRequest request) { return(Ok(request.CreateGridDataResponse(_repository.GetData()))); }
public GridDataResponse GetGridData(GridDataRequest request) { return(request.CreateGridDataResponse(DummyDb.Products)); }
public IActionResult GridData([FromBody] GridDataRequest request) { return(Ok(request.CreateGridDataResponse(_context.Stops))); }
public GridDataResponse GetPeople([JsonGridDataRequest] GridDataRequest model) => model.CreateGridDataResponse(People.AsQueryable());
public IActionResult Post(GridDataRequest request) { return(Ok(request.CreateGridDataResponse(OrdersList.Orders.AsQueryable()))); }
public object GridData([FromBody] GridDataRequest request) { return(request.CreateGridDataResponse(List.AsQueryable())); }