// Private Methods // private static string GetPlaylistLine(SpotifyPlaylistTrack oLine, List <PlaylistColumn> columns) { StringBuilder lineBuilder = new StringBuilder(); foreach (PlaylistColumn oCol in columns) { lineBuilder.Append(GetField(oCol, oLine) ?? string.Empty); if (columns.Last <PlaylistColumn>() != oCol) { lineBuilder.Append(','); } } return(lineBuilder.ToString()); }
private static string GetField(PlaylistColumn oCol, SpotifyPlaylistTrack oLine) { StringBuilder fieldBuilder = new StringBuilder(); fieldBuilder.Append('\"'); switch (oCol) { case PlaylistColumn.TrackName: fieldBuilder.Append(oLine.track.name); break; case PlaylistColumn.TrackArtists: foreach (SpotifyArtistSimple artist in oLine.track.artists) { fieldBuilder.Append(artist.name); if (oLine.track.artists.Last <SpotifyArtistSimple>() != artist) { fieldBuilder.Append(", "); } } break; case PlaylistColumn.AlbumName: fieldBuilder.Append(oLine.track.album.name); break; case PlaylistColumn.Duration: fieldBuilder.Append(TimeSpan.FromMilliseconds(oLine.track.duration_ms).ToString(@"mm\:ss")); break; case PlaylistColumn.AddedAt: fieldBuilder.Append(oLine.added_at); break; case PlaylistColumn.AddedBy: fieldBuilder.Append(oLine.added_by.display_name ?? oLine.added_by.id); break; case PlaylistColumn.IsLocal: fieldBuilder.Append(oLine.is_local); break; case PlaylistColumn.TrackID: fieldBuilder.Append(oLine.track.id); break; } fieldBuilder.Append('\"'); return(fieldBuilder.ToString()); }