private void LoadPlaylist(Playlist playlist) { Util.FindMissing(playlist, out var missingSongs, out var formatChanges); PlaylistNode node = null; if (missingSongs.Count + formatChanges.Count > 0) { node = uiTree.AddPlaylist(playlist, missingSongs, formatChanges); } if (node == null) { return; } foreach (var song in missingSongs) { if (_songMap.ContainsKey(song)) { _songMap[song].AddDistinct(node); } else { _songMap[song] = new List <PlaylistNode> { node } } } ; foreach (var formatChange in formatChanges) { if (_songMap.ContainsKey(formatChange.Song)) { _songMap[formatChange.Song].AddDistinct(node); } else { _songMap[formatChange.Song] = new List <PlaylistNode> { node } } } ; UpdateStatus(); }
public bool GetPlaylistHasDuplicates(PlaylistNode playlist) => playlist.tracks.GroupBy(t => t.Id).Where(gt => gt.Count() > 1).Select(gt2 => gt2.Key).Count() > 0;
public List <Track> GetTracksInPlaylist(PlaylistNode playlist) => GetTracks(playlist.Tracks);