public IActionResult GetLimitedData([FromQuery] LimitOffsetParams paginationQuery) { if (!IsPaginationValid(paginationQuery)) { return(BadRequest("Bad pagination")); } var result = paginationQuery.Offset < Data.Count ? Data.GetRange(paginationQuery.Offset, Math.Min(paginationQuery.Limit, Data.Count - paginationQuery.Offset)) : new List <DataDto>(); //Pagination object result must include the items being returned, the initial query options and the max number of items if available return(new PaginationObjectResult(result, paginationQuery)); }
public IActionResult GetLimitedData([FromQuery] LimitOffsetParams paginationQuery, [FromQuery] MyFilterParams filterQuery) { if (!IsPaginationValid(paginationQuery) || !IsFilterValid(filterQuery)) { return(BadRequest("Bad pagination")); } var result = paginationQuery.Offset < Data.Count ? Data.Where(x => x.Number >= filterQuery.MinimumNumber && x.Number <= filterQuery.MaximumNumber) .Skip(paginationQuery.Offset) .Take(paginationQuery.Limit) .ToList() : new List <DataDto>(); //Pagination object result must include the items being returned, the initial query options and the max number of items if available return(new PaginationObjectResult(result, paginationQuery)); }