Пример #1
0
        public async Task <IActionResult> GetAllWeatherForecasts([FromQuery] string jsonFilterDefinition = null, [FromQuery] string jsonSortingDefinition = null, [FromQuery] int?page = null, [FromQuery] int?pageSize = null)
        {
            if (!page.HasValue)
            {
                page = 1;
            }

            if (!pageSize.HasValue)
            {
                pageSize = 10;
            }

            var allItemCount = await _weatherRepository.Count(jsonFilterDefinition : jsonFilterDefinition);

            var paginationMetadata = new
            {
                totalCount  = allItemCount,
                pageSize    = pageSize,
                currentPage = page,
                totalPages  = (int)Math.Ceiling(allItemCount / (double)pageSize)
            };

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(paginationMetadata));


            return(Ok(await _weatherRepository.GetAll(jsonFilterDefinition: jsonFilterDefinition, jsonSortingDefinition: jsonSortingDefinition, page: page, pageSize: pageSize)));
        }