public static SPlaylistData GetPlaylist(int playlistId) { if (CPlaylists.Get(playlistId) == null) { throw new ArgumentException("invalid playlistId"); } return(_GetPlaylistInfo(CPlaylists.Get(playlistId))); }
public static void RemovePlaylist(int playlistId) { if (CPlaylists.Get(playlistId) == null) { throw new ArgumentException("invalid playlistId"); } CPlaylists.Delete(playlistId); }
public static bool PlaylistContainsSong(int songId, int playlistId) { CPlaylistFile pl = CPlaylists.Get(playlistId); if (pl == null) { throw new ArgumentException("invalid playlistId"); } return(pl.Songs.Any(s => s.SongID == songId)); }
public static SPlaylistSongInfo[] GetPlaylistSongs(int playlistId) { CPlaylistFile pl = CPlaylists.Get(playlistId); if (pl == null) { throw new ArgumentException("invalid playlistId"); } return(_GetPlaylistSongInfos(pl)); }
public static void AddSongToPlaylist(int songId, int playlistId, bool allowDuplicates) { if (CPlaylists.Get(playlistId) == null) { throw new ArgumentException("invalid playlistId"); } if (allowDuplicates || !PlaylistContainsSong(songId, playlistId)) { CPlaylists.AddSong(playlistId, songId); CPlaylists.Save(playlistId); } else { throw new ArgumentException("song exists in this playlist"); } }
public static void RemoveSongFromPlaylist(int position, int playlistId, int songId) { CPlaylistFile pl = CPlaylists.Get(playlistId); if (pl == null) { throw new ArgumentException("invalid playlistId"); } if (!PlaylistContainsSong(songId, playlistId)) { throw new ArgumentException("invalid songId"); } if (position < 0 || pl.Songs.Count <= position || pl.Songs[position].SongID != songId) { throw new ArgumentException("invalid position"); } pl.DeleteSong(position); pl.Save(); }
public static void MoveSongInPlaylist(int newPosition, int playlistId, int songId) { CPlaylistFile pl = CPlaylists.Get(playlistId); if (pl == null) { throw new ArgumentException("invalid playlistId"); } if (!PlaylistContainsSong(songId, playlistId)) { throw new ArgumentException("invalid songId"); } if (pl.Songs.Count < newPosition) { throw new ArgumentException("invalid newPosition"); } int oldPosition = pl.Songs.FindIndex(s => s.SongID == songId); pl.MoveSong(oldPosition, newPosition); pl.Save(); }