private void btnSubmit_Click(object sender, EventArgs e) { //create package if (package == null) { if (ValidatePackageDataInput()) { //create package object Package p = new Package(); p.Name = txtName.Text; p.Description = txtDescription.Text; p.Start_Date = dtpStart.Value; p.End_Date = dtpEnd.Value; p.Base_Price = Convert.ToDecimal(txtPrice.Text); p.Agency_Commission = Convert.ToDecimal(txtCommission.Text); //insert package to DB if (PackageDB.AddPackage(p)) //package was created { //get list of added products and suppliers List <int> list = new List <int>(); foreach (DataGridViewRow item in dgvProductSuppliers.Rows) { int id = Convert.ToInt32(item.Cells[0].Value); list.Add(id); } p.ID = PackageDB.GetMaxPackageID(); //insert products suppliers foreach (int l in list) { PackageDB.AddPackageProductSupplier(p.ID, l); } MessageBox.Show("The Package was Added.", "Package was Added"); Close(); } else { MessageBox.Show("Error Occured. Try Again", "Package was NOT Added"); } } } //update package else { if (ValidatePackageDataInput()) { //edit package class package.Name = txtName.Text; package.Description = txtDescription.Text; package.Base_Price = Convert.ToDecimal(txtPrice.Text); package.Agency_Commission = Convert.ToDecimal(txtCommission.Text); package.Start_Date = dtpStart.Value; package.End_Date = dtpEnd.Value; //update db if (PackageDB.UpdatePackage(package)) { //delete or add PackageProductSupplier Records //get list of products and suppliers List <int> list = new List <int>(); foreach (DataGridViewRow item in dgvProductSuppliers.Rows) { int prodSupID = Convert.ToInt32(item.Cells[0].Value); list.Add(prodSupID); } //delete packageproductsupplier if (PackageDB.DeletePackageProductSupplier(package.ID, list)) { } //insert packageproductsupplier foreach (int l in list) { PackageDB.AddPackageProductSupplier(package.ID, l); } MessageBox.Show("The Package was Added.", "Package was Added"); Close(); } else { MessageBox.Show("Error occured when saving package"); } } } }