private void Play(IEnumerable <BaseData> data, bool deep) { Playlist.PlaylistManager.Instance.ClearPlaylist(); List <PlaylistSong> songs = new List <PlaylistSong>(); foreach (BaseData datum in data) { if (datum is Artist artist) { songs.AddRange(PlaylistTransferRequestHandler.GetArtistData( artist: artist, deep: deep)); } else if (datum is Album album) { songs.AddRange(PlaylistTransferRequestHandler.GetAlbumData( album: album, deep: deep)); } else if (datum is Song song) { songs.AddRange(PlaylistTransferRequestHandler.GetSongData(song)); } else if (datum is Recording recording) { songs.AddRange(PlaylistTransferRequestHandler.GetSongData(recording)); } else { Console.WriteLine($"Unexpected LibraryContext: {datum}. Likey error."); return; } } if (data.Count() == 1) { Playlist.PlaylistManager.Instance.PlaylistName = PlaylistTransferRequestHandler.GetDefaultPlaylistName( data: data.First()); } else { Playlist.PlaylistManager.Instance.PlaylistName = "Assorted"; } Playlist.PlaylistManager.Instance.Rebuild(songs); Player.MusicManager.Instance.Next(); }
private void Add(IEnumerable <BaseData> data, bool deep, int position = -1) { List <PlaylistSong> songs = new List <PlaylistSong>(); foreach (BaseData datum in data) { if (datum is Artist artist) { songs.AddRange(PlaylistTransferRequestHandler.GetArtistData( artist: artist, deep: deep)); } else if (datum is Album album) { songs.AddRange(PlaylistTransferRequestHandler.GetAlbumData( album: album, deep: deep)); } else if (datum is Song song) { songs.AddRange(PlaylistTransferRequestHandler.GetSongData(song)); } else if (datum is Recording recording) { songs.AddRange(PlaylistTransferRequestHandler.GetSongData(recording)); } else { Console.WriteLine($"Unexpected LibraryContext: {datum}. Likey error."); return; } } if (position == -1) { Playlist.PlaylistManager.Instance.AddBack(songs); } else { Playlist.PlaylistManager.Instance.InsertSongs(position, songs); } }