Ejemplo n.º 1
0
        /// <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();
        }
Ejemplo n.º 2
0
        /// <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();
        }