public async Task <PagedList <AlbumDto> > GetAlbumsAsync(string username, AlbumParameters albumParameters) { var albums = await _albumRepository.GetAlbumsAsync(username); SearchByTitle(ref albums, albumParameters.Title); SearchByArtistName(ref albums, albumParameters.ArtistName); SearchByPublicationYear(ref albums, albumParameters.PublicationYear); var albumsDto = _mapper.Map <ICollection <AlbumDto> >(albums); return(PagedList <AlbumDto> .ToPagedList(albumsDto.ToList(), albumParameters.PageNumber, albumParameters.PageSize)); }
public async Task <ActionResult <List <AlbumDto> > > Get([FromQuery] AlbumParameters albumParameters) { var username = User.FindFirst(c => c.Type == ClaimTypes.Name).Value; var albums = await _albumService.GetAlbumsAsync(username, albumParameters); var metadata = new { albums.TotalCount, albums.PageSize, albums.CurrentPage, albums.TotalPages, albums.HasNext, albums.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(albums)); }