private PlaylistInformation GetPlaylistContentInformation(string playlist) { var playlistInformation = new PlaylistInformation(); using (var cref = _context.EnsureUmbracoContext()) { var cache = cref.UmbracoContext.Content; var globalContentRoot = cache.GetAtRoot().FirstOrDefault(r => r.IsDocumentType(DocumentTypes.GlobalContent)); var videoRoot = globalContentRoot?.Children.FirstOrDefault(c => c.IsDocumentType(DocumentTypes.Video)); var targetPlaylist = videoRoot?.Children.FirstOrDefault(v => v.IsDocumentType(DocumentTypes.Playlist) && v.Name.Equals(playlist)); playlistInformation.PlaylistItemsContent = targetPlaylist?.Children.Where(c => c.IsDocumentType(DocumentTypes.PlaylistItem)); playlistInformation.PlaylistId = targetPlaylist?.Id ?? 0; return(playlistInformation); } }
private static async Task <IEnumerable <SpotifyTrack> > GetPlaylistTracksAsync(PlaylistInformation playlists) { var playlistId = playlists.Details.FirstOrDefault(playlist => playlist.Name == PlaylistName).Id; var requestPlaylistTracks = new HttpRequestMessage(HttpMethod.Get, new Uri($"{Url}/playlists/{playlistId}/tracks")); requestPlaylistTracks.Headers.Authorization = new AuthenticationHeaderValue(_accessToken.token_type, _accessToken.access_token); var playlistTrackResponse = await Client.SendAsync(requestPlaylistTracks); var result = playlistTrackResponse.Content.ReadAsStringAsync().Result; var tracks = JsonConvert.DeserializeObject <TrackInformation>(result); return(tracks.Details.Select(trackDetails => new SpotifyTrack { Name = trackDetails.Songs.Name, Artist = trackDetails.Songs.Artists.First().Name }) .ToList()); }