コード例 #1
0
        public async Task <IActionResult> Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var result = await _itemService.GetItemsAsync();

            var totalItems = result.Count();

            var itemsOnPage = result.OrderBy(c => c.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize);

            var hateoasResults = new List <ItemHateoasResponse>();

            foreach (var itemResponse in itemsOnPage)
            {
                var hateoasResult = new ItemHateoasResponse {
                    Data = itemResponse
                };
                await _linksService.AddLinksAsync(hateoasResult);

                hateoasResults.Add(hateoasResult);
            }

            var model = new PaginatedItemResponseModel <ItemHateoasResponse>(
                pageIndex, pageSize, totalItems, hateoasResults);

            return(Ok(model));
        }
コード例 #2
0
ファイル: ItemController.cs プロジェクト: jc184/Catalog.API
        public async Task <IActionResult> Get(int pageSize = 10, int pageIndex = 0)
        {
            var result = await _itemService.GetItemsAsync();

            var totalItems = result.Count();

            var itemsOnPage = result
                              .OrderBy(c => c.Name)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize);

            var model = new PaginatedItemResponseModel <ItemResponse>(pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
        public async Task <IActionResult> Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var result = await _mediator.Send(new GetArtistsCommand());

            int totalItems = result.Count;

            var itemsOnPage = result
                              .OrderBy(c => c.ArtistName)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize);

            var model = new PaginatedItemResponseModel <ArtistResponse>(
                pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }
コード例 #4
0
        public async Task <IActionResult> Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0)
        {
            var result = await _artistService.GetArtistsAsync();

            var totalItems = result.ToList().Count;

            var itemsOnPage = result
                              .OrderBy(c => c.ArtistName)
                              .Skip(pageSize * pageIndex)
                              .Take(pageSize);

            var model = new PaginatedItemResponseModel <ArtistResponse>(
                pageIndex, pageSize, totalItems, itemsOnPage);

            return(Ok(model));
        }