Example #1
0
        //Event to delete albums in treeview.
        private void twAlbums_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (twAlbums.SelectedNode.Tag is Album album)
                {
                    var result = MessageBox.Show(
                        $"Are you sure you want to delete album '{album.Title}'?\n" +
                        $"This will also delete ALL the tracks on that album.",
                        "Delete album",
                        MessageBoxButtons.OKCancel
                        );

                    if (result == DialogResult.OK)
                    {
                        if (album.Tracks != null)
                        {
                            var tracksToRemove = db.Tracks.Where(track => track.AlbumId == album.AlbumId).ToList();
                            db.RemoveRange(tracksToRemove);
                        }

                        db.Remove(album);
                        twAlbums.Nodes.Remove(twAlbums.SelectedNode);
                        db.SaveChanges();
                        daGrTracks.Rows.Clear();
                    }
                }
            }
        }
        private void twAddAlbums_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                if (twAddAlbums.SelectedNode.Tag is Artist artist)
                {
                    var result = MessageBox.Show(
                        $"Are you sure you want to delete artist '{artist.Name}'?\n" +
                        $"This will also delete ALL the Albums and Tracks from that artist!",
                        "Delete Artist",
                        MessageBoxButtons.OKCancel
                        );

                    if (result == DialogResult.OK)
                    {
                        if (artist.Albums.Count != 0)
                        {
                            foreach (Album album in artist.Albums)
                            {
                                if (album.Tracks.Count != 0)
                                {
                                    var tracksToRemove = db.Tracks.Where(t => t.AlbumId == album.AlbumId).ToList();
                                    db.RemoveRange(tracksToRemove);
                                }
                            }
                            var albumsToRemove = db.Albums.Where(a => a.ArtistId == artist.ArtistId).ToList();
                            db.RemoveRange(albumsToRemove);
                        }

                        db.Remove(artist);
                        twAddAlbums.Nodes.Remove(twAddAlbums.SelectedNode);
                        db.SaveChanges();
                    }
                }
            }
        }