/// <summary> /// Премахваме песен. /// </summary> public static void RemoveSong(string name, bool isAbp = false) { var context = new BlogDBContext(); var song = context.Songs.FirstOrDefault(f => f.Name == name); // Ако песента вече я няма се връщаме. if (song is null) { return; } // Взимаме песента и я премахваме от бандите,албумите и плейлистите. var albumSong = context.AlbumsSongs.FirstOrDefault(f => f.SongID == song.ID); var bandSong = context.BandsSongs.FirstOrDefault(f => f.SongID == song.ID); var playListSong = context.PlayListsSongs.FirstOrDefault(f => f.SongID == song.ID); if (albumSong != null) { context.AlbumsSongs.Remove(albumSong); } if (bandSong != null) { context.BandsSongs.Remove(bandSong); } if (playListSong != null) { context.PlayListsSongs.Remove(playListSong); } if (isAbp && ABP.Songs.FirstOrDefault(f => f.Name == name) is Song abpSong) { ABP.Songs.Remove(abpSong); ABP.OnPropertyChanged("Songs"); } context.Songs.Remove(song); context.SaveChanges(); CheckIfEmpty(context); context.SaveChanges(); SetCollection(); RefreshDataBase(); }
/// <summary> /// Премахва песен от плейлист. /// </summary> public static void RemoveSongFromPlayList(string name) { var context = new BlogDBContext(); var song = context.Songs.FirstOrDefault(f => f.Name == name); // Взимаме плейлиста от ABP класа. var playList = context.PlayLists.FirstOrDefault(f => f.Name == ABP.Name); // Ако не намерим плейлиста или песента се връщаме. if (song is null || playList is null) { return; } // Взимаме песента от SQL базата данни и я премахваме. var playListSong = context.PlayListsSongs.FirstOrDefault(f => f.PlayListID == playList.ID && f.SongID == song.ID); if (playListSong != null) { context.PlayListsSongs.Remove(playListSong); } context.SaveChanges(); // Премахваме песента от ABP класа. var abpSong = ABP.Songs.FirstOrDefault(f => f.Name == name); if (abpSong != null) { ABP.Songs.Remove(abpSong); } ABP.OnPropertyChanged("Songs"); // Премахваме песента от collection класа и обновяваме интерфейса. var collectionPlayList = Collection.PlayLists.FirstOrDefault(f => f.Name == ABP.Name); var removeSong = collectionPlayList?.Songs.FirstOrDefault(f => f.Name == name); if (removeSong != null) { collectionPlayList.Songs.Remove(removeSong); } RefreshDataBase(); }