Example #1
0
        //Event for deleting tracks in DatagridView.
        private void daGrTracks_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            if (e.Row.Tag is Track track)
            {
                var result = MessageBox.Show($"Do you want to delete '{track.Name}'" +
                                             $" from '{track.Album.Title}'?",
                                             "Delete Track?",
                                             MessageBoxButtons.OKCancel);

                if (result == DialogResult.OK)
                {
                    db.Remove(track);
                    db.SaveChanges();
                    MessageBox.Show("Track successfully removed!");
                    tbTrackMin.Clear();
                    tbTrackTitle.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();
                    }
                }
            }
        }