private void DeleteTreeNode(TreeNode treeNodeSelected) { try { if (treeNodeSelected.Name == "PARENTNODE")//the selected node is a parentNode { if (MessageBox.Show("Do you want to delete this parent node [" + treeNodeSelected.Text + "]" + " and all its children?\n(NB: This action cannot be undone.)", "Warning!", MessageBoxButtons.YesNo) == DialogResult.Yes) { foreach (TreeNode child in treeNodeSelected.Nodes)//close tabpage if possible { CloseTabPage(child.Name); RecentlyOpenedDocs.DeleteSermonFromID(int.Parse(child.Name)); Sermon.DeleteSermon(int.Parse(child.Name)); } if (int.TryParse(treeNodeSelected.Name, out int id)) { CloseTabPage(treeNodeSelected.Name); RecentlyOpenedDocs.DeleteSermonFromID(int.Parse(treeNodeSelected.Name)); Sermon.DeleteSermon(int.Parse(treeNodeSelected.Name)); } treeNodeSelected.Remove(); } } else//i.e. the selected node is not a parent node { TreeNode parentNode = treeNodeSelected.Parent; if (treeNodeSelected.Name != null) { if (MessageBox.Show("Do you want to delete this node [" + treeNodeSelected.Text + "]" + "?\n(NB: This action cannot be undone.)", "Warning!", MessageBoxButtons.YesNo) == DialogResult.Yes) { CloseTabPage(treeNodeSelected.Name);//close tabpage if possible treeNodeSelected.Remove(); RecentlyOpenedDocs.DeleteSermonFromID(int.Parse(treeNodeSelected.Name)); Sermon.DeleteSermon(int.Parse(treeNodeSelected.Name)); StatusBarMessages.SetStatusBarMessageAction("Deleted " + treeNodeSelected.Text); } } else { MessageBox.Show("Could not access node data.\nPlease try again.", "Failed to delete!"); } if (parentNode.GetNodeCount(false) == 0) { parentNode.Remove(); } } } catch { MessageBox.Show("Kindly specify the node to be deleted."); } }
private void MenuItemDeleteAll_Click(object sender, EventArgs e) { DialogResult userChoice = MessageBox.Show("This option is going to delete every record in your library. Do you wish to continue?\n(NB: This action cannot be undone.)", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (userChoice == DialogResult.Yes) { try { foreach (TreeNode tnParentNode in Nodes) { foreach (TreeNode tnChildNode in tnParentNode.Nodes) { try { string szRemoved = tnChildNode.Name; CloseTabPage(szRemoved);//close tabpage if possible Sermon.DeleteSermon(int.Parse(szRemoved)); RecentlyOpenedDocs.DeleteSermonFromID(int.Parse(szRemoved)); } catch {; } } } Nodes.Clear(); Sort(); if (Nodes.Count != 0) { MessageBox.Show("An error was encountered in deleting some nodes. Please try again."); StatusBarMessages.SetStatusBarMessageAction("Partial deletion"); } else { StatusBarMessages.SetStatusBarMessageAction("Deleted all stored sermons"); } } catch {; } } }