Esempio n. 1
0
        public async Task <WebResults> GetArtistTopSongsAsync(string artistToken, int limit = 50, string pageToken = null)
        {
            var response =
                await(pageToken == null
                    ? _client.SubBrowseAsync(artistToken, ContentSource.Catalog, BrowseItemType.Artist,
                                             ExtraDetails.TopTracks, maxItems: limit)
                    : _client.SubBrowseContinuationAsync(artistToken, ContentSource.Catalog, BrowseItemType.Artist,
                                                         ExtraDetails.TopTracks, pageToken));

            var xboxArtist = response.Artists.Items.FirstOrDefault();

            if (response.Error == null)
            {
                var results = new WebResults
                {
                    HasMore   = xboxArtist.TopTracks?.ContinuationToken != null,
                    PageToken = xboxArtist.TopTracks?.ContinuationToken,
                    Songs     = xboxArtist.TopTracks?.Items?.Select(CreateSong).ToList()
                };
                return(results);
            }

            throw new ProviderException(response.Error.Message);
        }