TRock.Music.Spotify.SpotifySongProvider.GetAlbum C# (CSharp) Method

GetAlbum() public method

public GetAlbum ( string albumId, CancellationToken cancellationToken ) : Task
albumId string
cancellationToken System.Threading.CancellationToken
return Task
        public Task<ArtistAlbum> GetAlbum(string albumId, CancellationToken cancellationToken)
        {
            return _client
                .GetAsync(new Uri("http://ws.spotify.com/lookup/1/.json?uri=" + albumId + "&extras=trackdetail"), cancellationToken)
                .ContinueWith(requestTask =>
                {
                    var response = requestTask.Result;
                    response.EnsureSuccessStatusCode();

                    var content = response.Content.ReadAsStringAsync().Result;
                    var result = JsonConvert.DeserializeObject<dynamic>(content);

                    dynamic artistIdValue = result["album"]["artist-id"];
                    string artistId = artistIdValue != null ? artistIdValue.Value : null;
                    string artistName = result["album"]["artist"].Value;
                    string albumName = result["album"]["name"].Value;

                    var songs = new List<Song>();
                    foreach (var song in result["album"]["tracks"])
                    {
                        songs.Add(new Song
                        {
                            Id = song["href"].Value,
                            Name = song["name"].Value,
                            Provider = ProviderName,
                            TotalSeconds = (int)song["length"].Value,
                            Album = new Album
                            {
                                Id = result["album"]["href"].Value,
                                Provider = ProviderName,
                                Name = albumName,
                                CoverArt = _imageProvider.GetCoverArtUri(result["album"]["href"].Value) ?? string.Empty
                            },
                            Artist = new Artist
                            {
                                Id = artistId,
                                Name = artistName
                            }
                        });
                    }

                    return new ArtistAlbum
                    {
                        Album = new Album
                        {
                            Id = result["album"]["href"].Value,
                            Provider = ProviderName,
                            Name = albumName,
                            CoverArt = _imageProvider.GetCoverArtUri(result["album"]["href"].Value) ?? string.Empty
                        },
                        Artist = new Artist
                        {
                            Id = artistId,
                            Name = artistName
                        },
                        Songs = songs.ToArray()
                    };
                });
        }