public Task <IPagedCollection <PlaylistDetail> > Handle(GetPlaylistListQuery request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } return(GetPlaylistsList(request)); }
private async Task <IPagedCollection <PlaylistDetail> > GetPlaylistsList(GetPlaylistListQuery request) { var filter = _filterBuilder .WhereTrackIdEquals(request.TrackId) .WhereNameLike(request.Name).Filter; var playlistsFromDb = await _context .Playlists .TagWithQueryName(nameof(GetPlaylistsList)) .Where(filter) .Include(e => e.PlaylistTracks) .OrderBy(request.Order, _orderBuilder) .ToPagedCollectionAsync(request.PageNumber, request.PageSize); var playlists = _mapper.Map <IReadOnlyList <PlaylistDetail> >(playlistsFromDb); return(new PagedCollection <PlaylistDetail>( playlists, playlistsFromDb.ItemCount, playlistsFromDb.CurrentPageNumber, playlistsFromDb.PageSize)); }