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));
        }
Пример #2
0
        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));
        }