// delete button to delete a package
        private void btnDelete_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Delete " + package.PkgName + "?",
                                                  "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                try
                {
                    if (!PackageDB.DeletePackage(package)) // optimistic concurrency violation
                    {
                        MessageBox.Show("Another user has updated or deleted " +
                                        "that package.", "Database Error");
                        this.GetPackage(package.PackageId);
                        if (package != null)
                        {
                            this.DisplayPackage();
                        }
                        else
                        {
                            this.ClearControls();
                        }
                    }
                    else // successful delete
                    {
                        this.ClearControls();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, ex.GetType().ToString());
                }
            }
        }
        private void btnDeletePkg_Click(object sender, EventArgs e)
        {
            if (loggedInAgt == null)
            {
                mainForm.btnSignIn_Click(null, null);
            }
            else
            {
                // Get Selected Package Id
                int pkgId = (int)pkgNameComboBox.SelectedValue;

                // Get Selected Package Object
                var selectedPkg = packageList.SingleOrDefault(p => p.PackageId == pkgId);

                // Get Data from datagridview
                int prodSuppId       = (int)productSupplierViewModelDataGridView.CurrentRow.Cells[0].Value;
                var selectedProdSupp = prodSuppList.SingleOrDefault(ps => ps.ProductSupplierId == prodSuppId);

                var selectedPkgProdSupp = pkgProdSuppList.SingleOrDefault(pps => pps.ProductSupplierId == prodSuppId &&
                                                                          pps.PackageId == pkgId);

                int pkgIdCount = pkgProdSuppList.Where(pps => pps.PackageId == pkgId).Count();
                if (pkgIdCount == 1)
                {
                    // If the packageId is the last one inside the Package_Products_Supplier table
                    // Then we delete that package in the Package Table
                    try {
                        deletePkgProdSupp(selectedPkgProdSupp);
                        if (!PackageDB.DeletePackage(selectedPkg))
                        {
                            MessageBox.Show("Another user has updated or " +
                                            "deleted that Package.", "Database Error");
                            // Refresh data
                            reloadData();
                            refreshComboBox();
                        }
                        else
                        {
                            int index = pkgNameComboBox.Items.IndexOf(selectedPkg);
                            packageList.Remove(selectedPkg);
                            pkgNameComboBox.SelectedIndex = index - 1;
                            refreshComboBox();
                        }
                    } catch (Exception ex) {
                        MessageBox.Show("Error: " + ex.Message, ex.GetType().ToString());
                    }
                }
                else
                {
                    deletePkgProdSupp(selectedPkgProdSupp);
                    // If there are 2 or more packageIds inside Package_Products_Supplier, only delete
                    // from the package_products_supplier table, not the Package table
                }
            }
        }
示例#3
0
        // delete Package
        private void btnDeletePackage_Click(object sender, EventArgs e)
        {
            // get selected package
            int            packageId   = Convert.ToInt32(cmbPackageId.Text);
            List <Package> packageList = PackageDB.GetPackages(packageId);
            Package        package     = packageList.First();

            // confirm to delete
            DialogResult result = MessageBox.Show("Delete Package " + package.PackageId + "?",
                                                  "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                try
                {
                    // get current product suppliers
                    List <int> productSupplierIds = new List <int>();
                    foreach (var product in ProductsInPackageDB.GetProductsFromPackage(packageId))
                    {
                        productSupplierIds.Remove(product.ProductSupplierId);
                    }

                    // delete products suppliers linked to package
                    Packages_products_suppliersDB.Delete(packageId);

                    foreach (DataGridViewRow item in this.grdProductList.SelectedRows)
                    {
                        grdProductList.Rows.RemoveAt(item.Index);
                    }

                    // delete package
                    PackageDB.DeletePackage(package);
                    MessageBox.Show("Package " + packageId + " deleted successfully");
                    tabPackageList.SelectTab(0); // go back to list view
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        //delete button pressed in package tab
        private void btnDeletePackage_Click(object sender, EventArgs e)
        {
            //showing delete confrim for user
            DialogResult result = MessageBox.Show("Are you sure?", "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            SelectedRowPackage();
            if (result == DialogResult.Yes) //user click yes in delete message box
            {
                try
                {
                    if (!PackageDB.DeletePackage(package)) //delete failed in dql database
                    {
                        MessageBox.Show("Another user has updated or deleted package" + package.PkgName, "Datebase Error");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, ex.GetType().ToString());
                }
                this.DisplayPackages();
                this.DisplayPackageProdSup();
            }
        }