public async Task GetAlbumAndTracks()
        {
            string albumId = "WpTPGzNLeutVFHcFq6";

            // Get album information
            var albumResult = await OpenAPI.GetAlbumAsync(albumId);

            var album = albumResult.Content;

            Debug.WriteLine($"album: {album.Name}, {album.Id}");

            PagingData tracksPaging = null;

            // Get tracks of the album
            var tracksResult = await OpenAPI.GetTracksOfAlbumAsync(album.Id, tracksPaging?.Limit, tracksPaging?.Offset);

            var tracks = tracksResult.Content;

            tracksPaging        = tracks.Paging;
            tracksPaging.Offset = tracks.Paging.NextOffset();

            foreach (var track in tracks.Data)
            {
                Debug.WriteLine($"song: {track.Name}, {track.Id}");
            }

            if (tracksPaging.IsEnd() == false)
            {
                // Loop to get all tracks of the album
            }
        }
        public async Task GetChartsAndPlaylistTracks()
        {
            var chartPlaylistsResult = await OpenAPI.GetChartListAsync();

            var chartPlaylists = chartPlaylistsResult.Content;

            foreach (var item in chartPlaylists.Data)
            {
                Debug.WriteLine($"chart playlist: {item.Title}, {item.Id}");

                PagingData tracksPaging = null;

                // Get playlist information
                var playlist = await OpenAPI.GetPlaylistOfChartAsync(item.Id);

                // Get tracks of the playlist
                var tracksResult = await OpenAPI.GetPlaylistTracksOfChartAsync(item.Id, tracksPaging?.Limit, tracksPaging?.Offset);

                var tracks = tracksResult.Content;
                tracksPaging        = tracks.Paging;
                tracksPaging.Offset = tracks.Paging.NextOffset();

                foreach (var track in tracks.Data)
                {
                    Debug.WriteLine($"song: {track.Name}, {track.Id}");
                }

                if (tracksPaging.IsEnd())
                {
                    // Loop to get all tracks of the playlist
                }
            }
        }
        public async Task GetNewReleaseList()
        {
            PagingData categoryPaging = null;

            // List of new release categories.
            var newReleaseCategoryResult = await OpenAPI.GetNewReleaseCategoriesAsync(categoryPaging?.Limit, categoryPaging?.Offset);

            var newReleaseCategory = newReleaseCategoryResult.Content;

            foreach (var categoryItem in newReleaseCategory.Data)
            {
                Debug.WriteLine($"new release category: {categoryItem.Title}, {categoryItem.Id}");

                // To retrieve information of the new release category with {category_id}.
                var categoryDetailResult = await OpenAPI.GetNewReleaseCategoryAsync(categoryItem.Id);

                var categoryDetail = categoryDetailResult.Content;

                PagingData albumPaging = categoryDetail.Albums.Paging;
                albumPaging.Offset = albumPaging.NextOffset();

                foreach (var album in categoryDetail.Albums.Data)
                {
                    Debug.WriteLine($"album of the new release: {album.Name}, {album.Id} : {categoryDetail.Title}");
                }

                if (albumPaging.IsEnd())
                {
                    continue;
                }

                var albumsResult = await OpenAPI.GetAlbumsOfNewReleaseCategoryAsync(categoryItem.Id, albumPaging?.Limit, albumPaging?.Offset);

                var albums = albumsResult.Content;

                foreach (var album in albums.Data)
                {
                    Debug.WriteLine($"album of the new release: {album.Name}, {album.Id} : {categoryDetail.Title}");
                }

                albumPaging        = albums.Paging;
                albumPaging.Offset = albumPaging.Offset + albumPaging.Limit;

                if (string.IsNullOrEmpty(albums.Paging.Next))
                {
                    // Loop to get all albums of the category
                }
            }

            categoryPaging        = newReleaseCategory.Paging;
            categoryPaging.Offset = categoryPaging.Offset + categoryPaging.Limit;

            if (string.IsNullOrEmpty(newReleaseCategory.Paging.Next))
            {
                // List of new release categories.
            }
        }
Example #4
0
        public async Task GetFeaturedPlaylistsTestMethod()
        {
            await AuthorizeAsyncTestMethod();

            PagingData paging = null;

            while (true)
            {
                // Get featured playlists
                var featuredPlaylistsResult = await OpenAPI.GetFeaturedPlaylistsAsync(paging?.Limit, paging?.Offset);

                var featuredPlaylists = featuredPlaylistsResult.Content;

                foreach (var item in featuredPlaylists.Data)
                {
                    Debug.WriteLine($"featured playlist: {item.Title}, {item.Id}");

                    // Get playlist information
                    var playlist = await OpenAPI.GetPlaylistOfFeaturedPlaylistsAsync(item.Id);

                    PagingData tracksPaging = null;

                    while (true)
                    {
                        // Loop to get all tracks of the playlist
                        var tracksResult = await OpenAPI.GetPlaylistTracksOfFeaturedPlaylistsAsync(item.Id, tracksPaging?.Limit, tracksPaging?.Offset);

                        var tracks = tracksResult.Content;
                        tracksPaging        = tracks.Paging;
                        tracksPaging.Offset = tracks.Paging.NextOffset();

                        foreach (var track in tracks.Data)
                        {
                            Debug.WriteLine($"song: {track.Name}, {track.Id}");
                        }

                        if (tracksPaging.IsEnd())
                        {
                            break;
                        }
                    }
                }

                paging        = featuredPlaylists.Paging;
                paging.Offset = featuredPlaylists.Paging.NextOffset();

                if (paging.IsEnd())
                {
                    break;
                }
            }
        }
        public async Task GetArtistAndAlbumTracksAndTopTracks()
        {
            string artistId = "8q3_xzjl89Yakn_7GB";

            // Get artist information
            var artistResult = await OpenAPI.GetArtistAsync(artistId);

            var artist = artistResult.Content;

            Debug.WriteLine($"artist: {artist.Name}, {artist.Id}");

            PagingData albumsPaging = null;

            // Get albums of the artist
            var albumsResult = await OpenAPI.GetAlbumsOfArtistAsync(artist.Id, albumsPaging?.Limit, albumsPaging?.Offset);

            var albums = albumsResult.Content;

            albumsPaging        = albums.Paging;
            albumsPaging.Offset = albums.Paging.NextOffset();

            foreach (var album in albums.Data)
            {
                Debug.WriteLine($"album: {album.Name}, {album.Id}");
            }

            if (albumsPaging.IsEnd())
            {
                // Loop to get all albums of the artist
            }

            PagingData topTracksPaging = null;

            // Get top tracks of the artist
            var topTracksResult = await OpenAPI.GetTopTracksOfArtistAsync(artist.Id, topTracksPaging?.Limit, topTracksPaging?.Offset);

            var topTracks = topTracksResult.Content;

            topTracksPaging        = topTracks.Paging;
            topTracksPaging.Offset = topTracks.Paging.NextOffset();

            foreach (var track in topTracks.Data)
            {
                Debug.WriteLine($"top song: {track.Name}, {track.Id}");
            }

            if (topTracksPaging.IsEnd())
            {
                // Loop to get all top tracks of the artist
            }
        }