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 PaginatedItemsResponseModel <ItemHateoasResponse>( pageIndex, pageSize, totalItems, hateoasResults); return(Ok(model)); }
public async Task <IList <ItemResponse> > Handle(PaginatedItemsResponseModel command, CancellationToken cancellationToken) { if (command?.Id == null) { throw new ArgumentNullException(); } var result = await _itemRepository.GetItemByArtistIdAsync(command.Id); return(_mapper.Map <List <ItemResponse> >(result)); }
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 PaginatedItemsResponseModel <ItemResponse>(pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public async Task <IActionResult> Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0) { var result = await _genreService.GetGenreAsync(); var totalItems = result.ToList().Count; var itemsOnPage = result .OrderBy(c => c.GenreDescription) .Skip(pageSize * pageIndex) .Take(pageSize); var model = new PaginatedItemsResponseModel <GenreResponse>( pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public async Task <IActionResult> Get([FromQuery] int pageSize = 10, [FromQuery] int pageIndex = 0) { var result = await _artistService.GetArtistsAsync(); var total = result.Count(); var itemsOnPage = result .OrderBy(a => a.ArtistName) .Skip(pageSize * pageIndex) .Take(pageSize); var model = new PaginatedItemsResponseModel <ArtistResponse>( pageIndex, pageSize, total, itemsOnPage); return(Ok(model)); }