//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(); } } } }