private void DeleteWorker_Click(object sender, RoutedEventArgs e) { IWorker ws = WorkersView.SelectedItem as IWorker; if (ws == null) { return; } DeleteItemConfirmationDialog delCon = new DeleteItemConfirmationDialog( $"Are you sure you want to delete worker:\n\n" + $"ID: {ws.ID}, {ws.FirstName} {ws.LastName} ?\n\n" + "Worker will be deleted permnanently!"); bool?result = delCon.ShowDialog(); if (result != true) { return; } UI.Workers.RemoveWorker(ws); UpdateMainWindow(); }
/// <summary> /// Performs all necessary checking to delete department, /// then calls DeleteDepartment method of back-end /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteDepartment_Click(object sender, RoutedEventArgs e) { // Get currently selected department from the Tree View var tvis = AppleTree.SelectedItem as TreeViewItem; if (tvis == null) { return; } var d = tvis.Tag as IDepartmentDTO; var parent = tvis.Parent as TreeViewItem; // Check if we are not deleting root department if (d.ParentDeptID == 0) { MessageBox.Show("You cannot delete HQ department!"); return; } // Are we trying to delete empty department bool?result; if (d.NumberOfEmployees == 0 && d.NumberOfEmployees == 0) { DeleteItemConfirmationDialog delWin = new DeleteItemConfirmationDialog( "Are you sure to delete department\n" + $"{d.DeptName} ?\n" + "This action cannot be undone."); result = delWin.ShowDialog(); if (result != true) { return; } UI.Departments.DeleteEmptyDepartment(d); // Remove department from UI TreeView parent.Items.Remove(tvis); } else // Department has either employees or subdepartments or both { DeleteDepartmentMenu delDeptWin = new DeleteDepartmentMenu(d); result = delDeptWin.ShowDialog(); if (result != true) { return; } if (delDeptWin.selfExcludeOrCompletely) // Self Exclude way { DeleteItemConfirmationDialog delWin = new DeleteItemConfirmationDialog( "Are you sure to delete department\n" + $"{d.DeptName} ?\n" + "This action cannot be undone."); result = delWin.ShowDialog(); if (result != true) { return; } UI.Departments.SelfExcludeOfDepartment(d); // Update UI TreeView parent.Items.Clear(); // Refresh list of subdepartments // Because some may were added manually var subDepartments = UI.Get.SubDepartments((IDepartmentDTO)parent.Tag); // For each dept ... subDepartments.ForEach(dept => { // Create department item var subItem = CreateTVINode(dept); // Add this item to the parent parent.Items.Add(subItem); }); } else // Delete completely with all employees and subdepartments { DeleteItemConfirmationDialog delWin = new DeleteItemConfirmationDialog( $"Are you sure to completely delete department {d.DeptName}\n" + "and all its sub departments with all their employees?\n" + "This action cannot be undone."); result = delWin.ShowDialog(); if (result != true) { return; } UI.Departments.DeleteCompletely(d); // Remove department from UI TreeView parent.Items.Remove(tvis); } } parent.Items.Refresh(); }