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 #2
0
        public async Task GetSearchResultTestMethod()
        {
            await AuthorizeAsyncTestMethod();

            string     keyword = "祝我幸福";
            PagingData paging  = null;

            SearchType[] searchType = { SearchType.album, SearchType.artist, SearchType.playlist, SearchType.track };

            var searchResult = await OpenAPI.SearchAsync(keyword, paging?.Limit, paging?.Offset, searchType);

            var result = searchResult.Content;

            // get tracks
            result.Tracks.Data.ForEach(x =>
            {
                Debug.WriteLine($"name: {x.Name}, album: {x.Album.Name}");
            });

            paging        = result.Tracks.Paging;
            paging.Offset = result.Tracks.Paging.NextOffset();


            var nextResult = await OpenAPI.SearchAsync(keyword, paging?.Limit, paging.Offset, SearchType.track);

            var next = nextResult.Content;

            next.Tracks.Data.ForEach(x =>
            {
                Debug.WriteLine($"name: {x.Name}, album: {x.Album.Name}");
            });

            paging        = next.Tracks.Paging;
            paging.Offset = paging.NextOffset();

            if (string.IsNullOrEmpty(paging.Next))
            {
                // Loop to get datas
            }
        }
Example #3
0
        public async Task GetArtistAndAlbumTracksAndTopTracksTestMethod()
        {
            await AuthorizeAsyncTestMethod();

            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;

            while (true)
            {
                // Loop to get all 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)
                {
                    PagingData tracksPaging = null;

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

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

                        var tracks = tracksResult.Content;

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

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

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

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

            PagingData topTracksPaging = null;

            while (true)
            {
                // Loop to get all 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())
                {
                    break;
                }
            }
        }