Esempio n. 1
0
 public void DeleteTrack(string trackTitle)
 {
     using (var db = new DecibaseContext())
     {
         var track       = db.Tracks.First(t => t.Title == trackTitle);
         var albumTitle  = GetTrackAlbum(trackTitle);
         var album       = db.Albums.Include(a => a.Tracks).First(a => a.Title == albumTitle);
         var artistNames = RetrieveTrackArtistNames(trackTitle);
         foreach (var artistName in artistNames)
         {
             UnjoinTrackFromArtist(trackTitle, artistName);
         }
         db.Remove(track);
         db.SaveChanges();
         if (album.Tracks.Count == 0)
         {
             db.Remove(album);
             SelectedAlbum = "";
         }
         db.SaveChanges();
     }
     SelectedTrack = "";
 }
Esempio n. 2
0
        public void UnjoinTrackFromArtist(string trackTitle, string artistName)
        {
            using (var db = new DecibaseContext())
            {
                var track  = db.Tracks.First(t => t.Title == trackTitle);
                var artist = db.Artists.First(a => a.Name == artistName);

                if (db.TrackArtists.FirstOrDefault(ta => ta.TrackId == track.TrackId && ta.ArtistId == artist.ArtistId) != null)
                {
                    var ta = db.TrackArtists.First(ta => ta.TrackId == track.TrackId && ta.ArtistId == artist.ArtistId);
                    db.Remove(ta);
                    db.SaveChanges();
                    if (RetrieveArtistTrackTitles(artistName).Count == 0)
                    {
                        db.Remove(artist);
                        if (SelectedArtist == artist.Name)
                        {
                            SelectedArtist = "";
                        }
                    }
                }
            }
        }
Esempio n. 3
0
 public void DeleteAlbum(string albumTitle)
 {
     using (var db = new DecibaseContext())
     {
         var albumTracks = RetrieveAlbumTrackTitles(albumTitle);
         foreach (var track in albumTracks)
         {
             DeleteTrack(track);
         }
         if (albumTracks.Count == 0)
         {
             var album = db.Albums.First(a => a.Title == albumTitle);
             db.Remove(album);
             db.SaveChanges();
         }
     }
     SelectedAlbum = "";
 }
Esempio n. 4
0
 public void DeleteArtist(string artistName)
 {
     using (var db = new DecibaseContext())
     {
         var artistTracks = RetrieveArtistTrackTitles(artistName);
         foreach (var track in artistTracks)
         {
             DeleteTrack(track);
         }
         if (artistTracks.Count == 0)
         {
             var artist = db.Artists.First(a => a.Name == artistName);
             db.Remove(artist);
             db.SaveChanges();
             if (SelectedArtist == artist.Name)
             {
                 SelectedArtist = "";
             }
         }
     }
 }