// Add to Database public static void AddPackagesProductsSuppliers(PackagesProductsSuppliers packagesProductsSuppliers) { string insertStatement = "INSERT INTO Packages_Products_Suppliers (PackageId, ProductSupplierId) " + "VALUES (@PackageId, @ProductSupplierId)"; // Get connection to Travel Experts DB SqlConnection connection = TravelExpertsDB.GetConnection(); // Create an insert command object SqlCommand insertCmd = new SqlCommand(insertStatement, connection); // Assign value to parameter(s) insertCmd.Parameters.AddWithValue("@PackageId", packagesProductsSuppliers.PackageId); insertCmd.Parameters.AddWithValue("@ProductSupplierId", packagesProductsSuppliers.ProductSupplierId); // Execute the insert command try { connection.Open(); // Returns the auto generated ProductSupplierId insertCmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { connection.Close(); } }
public static List <PackagesProductsSuppliers> GetPackagesProductsSuppliers() { List <PackagesProductsSuppliers> packagesProductsSuppliers = new List <PackagesProductsSuppliers>(); SqlConnection connection = TravelExpertsDB.GetConnection(); //Connecting to TRavel Experts Database string select = "Select * FROM Packages_Products_Suppliers "; //selecting PackageId and Product Supplier ID SqlCommand sqlCommand = new SqlCommand(select, connection); try { connection.Open(); //opening connection SqlDataReader read = sqlCommand.ExecuteReader(); while (read.Read()) { PackagesProductsSuppliers packProdSupp = new PackagesProductsSuppliers(); packProdSupp.PackageId = (int)read["PackageId"]; packProdSupp.ProductSupplierId = (int)read["ProductSupplierId"]; packagesProductsSuppliers.Add(packProdSupp); } } catch (Exception ex) //catching all exeptions { throw ex; } finally { connection.Close(); //closing connection } return(packagesProductsSuppliers); //returning List }//List of PPS end
}//updating Method end public static bool DeletePackagesProductsSuppliers(PackagesProductsSuppliers packProdSupp) { SqlConnection connection = TravelExpertsDB.GetConnection();//connection to DB bool success = true; string delete = "DELETE FROM Packages_Products_Suppliers " + "WHERE PackageId = @PackageId " + "AND ProductSupplierId = @ProductSupplierId"; SqlCommand deleteStatment = new SqlCommand(delete, connection); deleteStatment.Parameters.AddWithValue("@PackageId", packProdSupp.PackageId); deleteStatment.Parameters.AddWithValue("@ProductSupplierId", packProdSupp.ProductSupplierId); try { connection.Open();//opening connection int del = deleteStatment.ExecuteNonQuery(); if (del == 0) { success = false; //zero rows have been deleted then we return false } } catch (Exception ex) { throw ex; } finally { connection.Close(); } return(success); } //delete method end
//Adding new package private void btnAdd_Click(object sender, EventArgs e) { HideForm(); //create second form frmAddModifyPackage addModPkg = new frmAddModifyPackage(); //create products form frmAddMultiProd addProd = new frmAddMultiProd(); // setting isAdd to true to pass it to the second form addModPkg.isAdd = true; addModPkg.package = null; //no package //show it modal DialogResult result = addModPkg.ShowDialog();//accept returns ok //if dialogresult is ok, save package, and display items in list view if (result == DialogResult.OK) { selectedPackage = addModPkg.package; selectedProductsIds = addModPkg.updated_Product_Selections; try { var newPackage = context.Packages.Add(selectedPackage); context.SaveChanges(); //adding associated products only if added if (selectedProductsIds != null) { foreach (var item in selectedProductsIds) { //creating the corresponding entry for each selected product //in the PackagesProductsSuppliers table PackagesProductsSuppliers pkgProdsup = new PackagesProductsSuppliers(); pkgProdsup.ProductSupplierId = item; int id = selectedPackage.PackageId; pkgProdsup.PackageId = id; context.PackagesProductsSuppliers.Add(pkgProdsup); } context.SaveChanges(); } DisplayLVPackages(); } catch (DbUpdateException ex) { HandleDataError(ex); } catch (Exception ex) { HandleGeneralError(ex); } } ShowForm(); ClearSelection(); }
private async Task <bool> PostProductsForPackageAsync(List <Products> products, int packageID) { HttpClient client = new System.Net.Http.HttpClient(); // Get All ProductsSuppliers into List List <ProductsSuppliers> prodsSuppsListFull; HttpResponseMessage response = await client.GetAsync("https://localhost:44327/api/ProductsSuppliersAPI"); prodsSuppsListFull = JsonConvert.DeserializeObject <List <ProductsSuppliers> >(await response.Content.ReadAsStringAsync()); // Get all ProductsSuppliers Id's for products in the list List <int> inputProductIds = new List <int>(); foreach (var item in products) { inputProductIds.Add(item.ProductId); } // Filter ProductsSuppliers List for only products that are in input products var PerProductSupplier = new List <ProductsSuppliers>(); List <ProductsSuppliers> prodsSuppsListFiltered = new List <ProductsSuppliers>(); // Assign the first ProductSupplierId to the Product which package uses foreach (int productid in inputProductIds) { prodsSuppsListFiltered.Add(prodsSuppsListFull.Find(ps => ps.ProductId == productid)); } // Got filtered list of productSupplierIds, now post this list 1 by 1 to Packages_Products_Suppliers List <HttpStatusCode> codes = new List <HttpStatusCode>(); foreach (var productSupplier in prodsSuppsListFiltered) { var newPackageProductSupplier = new PackagesProductsSuppliers { PackageId = packageID, ProductSupplierId = productSupplier.ProductSupplierId }; var content = JsonConvert.SerializeObject(newPackageProductSupplier); var httpContent = new StringContent(content, Encoding.UTF8, "application/json"); HttpResponseMessage responseFromPost = await client.PostAsync("https://localhost:44327/api/PackagesProductsSuppliersAPI", httpContent); codes.Add(responseFromPost.StatusCode); } // return true if all status codes are OK otherwise return false bool IsGoodRequest = true; foreach (HttpStatusCode code in codes) { if (code != HttpStatusCode.Created) { IsGoodRequest = false; } } return(IsGoodRequest); }
private void deletePkgProdSupp(PackagesProductsSuppliers packagesProductsSuppliers) { try { if (!PackagesProductsSuppliersDB.DeletePackagesProductsSuppliers(packagesProductsSuppliers)) { MessageBox.Show("Another user has updated or " + "deleted that Package.", "Database Error"); // Refresh data reloadData(); refreshComboBox(); } else { pkgProdSuppList.Remove(packagesProductsSuppliers); // Reload Combo box refreshComboBox(); } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message, ex.GetType().ToString()); } }
}//List of PPS end public static PackagesProductsSuppliers GetPackagesProductsSuppliersByPkgIdAndProductSupplierId(int pkgId, int prodSuppId) { PackagesProductsSuppliers pps = null; SqlConnection connection = TravelExpertsDB.GetConnection(); //Connecting to TRavel Experts Database string select = "Select * FROM Packages_Products_Suppliers " + //selecting PackageId and Product Supplier ID "WHERE PackageId = @pkgId " + "AND ProductSupplierId = @prodSuppId"; SqlCommand sqlCommand = new SqlCommand(select, connection); sqlCommand.Parameters.AddWithValue("@pkgId", pkgId); sqlCommand.Parameters.AddWithValue("@prodSuppId", prodSuppId); try { connection.Open(); //opening connection SqlDataReader read = sqlCommand.ExecuteReader(); if (read.Read()) { pps = new PackagesProductsSuppliers(); pps.PackageId = (int)read["PackageId"]; pps.ProductSupplierId = (int)read["ProductSupplierId"]; } } catch (Exception ex) //catching all exeptions { throw ex; } finally { connection.Close(); //closing connection } return(pps); //returning List }
//Updating DataBase public static bool UpdatePackagesProductsSuppliers(PackagesProductsSuppliers oldPPS, PackagesProductsSuppliers newPPS) { SqlConnection connection = TravelExpertsDB.GetConnection();//connection to DB bool success = true; //finding record it needs to update "old" and replacing it with the "new" PPS info string update = "UPDATE Packages_Products_Suppliers SET " + "ProductSupplierId = @NewProductSupplierId " + "WHERE PackageId = @OldPackageId " + "AND ProductSupplierId = @OldProductSupplierId"; SqlCommand updateCmd = new SqlCommand(update, connection); updateCmd.Parameters.AddWithValue("@NewProductSupplierId", newPPS.ProductSupplierId); updateCmd.Parameters.AddWithValue("@OldPackageId", oldPPS.PackageId); updateCmd.Parameters.AddWithValue("@OldProductSupplierId", oldPPS.ProductSupplierId); try { connection.Open(); int rowsUpdated = updateCmd.ExecuteNonQuery(); if (rowsUpdated == 0) { success = false; //if rows where not updated and success returns false } } catch (Exception ex)//catching all exeptions { throw ex; } finally { connection.Close(); //closing connection } return(success); //returning updated Info if it was "true" }//updating Method end
//Modifying existing product private void btnModify_Click(object sender, EventArgs e) { HideForm(); //create second form frmAddModifyPackage addModPkg = new frmAddModifyPackage(); // setting isAdd to false to pass it to the second form addModPkg.isAdd = false; /*retrieving the selected product * selected_package code is retrieved from the lvPackages_ItemSelectionChanged * event handler*/ addModPkg.package = context.Packages.Find(selected_packageID); addModPkg.Original_Product_selections = ProductsByPackage(selected_packageID); //show it modal DialogResult result = addModPkg.ShowDialog();//accept returns ok //if dialogresult is ok, save product, and display items in list view if (result == DialogResult.OK) { selectedPackage = addModPkg.package; var updated = addModPkg.updated_Product_Selections; var original = GetProdSuppId_Selections(selected_packageID); if (updated != null) { selectedProductsIds = updated; } else { selectedProductsIds = original; } try { //remove old selections var pkgProdSuppliers = context.PackagesProductsSuppliers .Where(p => p.PackageId == selected_packageID); foreach (var item in pkgProdSuppliers) { context.PackagesProductsSuppliers.Remove(item); } context.SaveChanges(); //add new selections foreach (var item in selectedProductsIds) { //creating the corresponding entry for each selected product //in the PackagesProductsSuppliers table PackagesProductsSuppliers pkgProdsup = new PackagesProductsSuppliers(); pkgProdsup.ProductSupplierId = item; int id = selectedPackage.PackageId; pkgProdsup.PackageId = id; context.PackagesProductsSuppliers.Add(pkgProdsup); } context.SaveChanges(); DisplayLVPackages(); } catch (DbUpdateException ex) { HandleDataError(ex); } catch (Exception ex) { HandleGeneralError(ex); } } ShowForm(); ClearSelection(); ManageControls(false); }
private void frmUpdatePackages_Load(object sender, EventArgs e) { // Create a copy of the selected object; OldPackage = new Package { PackageId = SelectedPackage.PackageId, PkgAgencyCommission = SelectedPackage.PkgAgencyCommission, PkgBasePrice = SelectedPackage.PkgBasePrice, PkgDesc = SelectedPackage.PkgDesc, PkgEndDate = SelectedPackage.PkgEndDate, PkgName = SelectedPackage.PkgName, PkgStartDate = SelectedPackage.PkgStartDate }; OldProductsSupplier = new ProductsSupplier { ProductSupplierId = SelectedProductsSupplier.ProductSupplierId, ProductId = SelectedProductsSupplier.ProductId, SupplierId = SelectedProductsSupplier.SupplierId }; OldPkgProdSupp = new PackagesProductsSuppliers { PackageId = SelectedPkgProdSupp.PackageId, ProductSupplierId = SelectedPkgProdSupp.ProductSupplierId }; // Populate combo boxes prodNameComboBox.DisplayMember = "ProdName"; prodNameComboBox.ValueMember = "ProductId"; prodNameComboBox.DataSource = Products.OrderBy(p => p.ProdName).ToList(); supNameComboBox.DisplayMember = "SupName"; supNameComboBox.ValueMember = "SupplierId"; supNameComboBox.DataSource = Suppliers.OrderBy(s => s.SupName).ToList(); pkgNameTextBox.Text = SelectedPackage.PkgName; pkgBasePriceTextBox.Text = SelectedPackage.PkgBasePrice.ToString(); if (SelectedPackage.PkgDesc == null) { pkgDescTextBox.Text = string.Empty; } else { pkgDescTextBox.Text = SelectedPackage.PkgDesc; } DateTime startDate = SelectedPackage.PkgStartDate ?? DateTime.MinValue; if (startDate == DateTime.MinValue) { pkgStartDateDateTimePicker.Format = DateTimePickerFormat.Custom; pkgStartDateDateTimePicker.CustomFormat = " "; pkgStartDateDateTimePicker.Checked = false; } else { pkgStartDateDateTimePicker.Format = DateTimePickerFormat.Long; pkgStartDateDateTimePicker.Value = startDate; } DateTime endDate = SelectedPackage.PkgEndDate ?? DateTime.MinValue; if (endDate == DateTime.MinValue) { pkgEndDateDateTimePicker.Format = DateTimePickerFormat.Custom; pkgEndDateDateTimePicker.CustomFormat = " "; pkgEndDateDateTimePicker.Checked = false; } else { pkgEndDateDateTimePicker.Format = DateTimePickerFormat.Long; pkgEndDateDateTimePicker.Value = endDate; } pkgAgencyCommissionTextBox.Text = SelectedPackage.PkgAgencyCommission.ToString(); prodNameComboBox.SelectedValue = SelectedProductsSupplier.ProductId; supNameComboBox.SelectedValue = SelectedProductsSupplier.SupplierId; }
private void btnUpdate_Click(object sender, EventArgs e) { string pkgName; decimal basePrice; int productId; int supplierId; if (Validator.IsPresent(pkgNameTextBox)) { pkgName = pkgNameTextBox.Text; // If Package Name already exists, get package object from database bool ValidPrice = true; bool DateValid = true; if (Validator.IsPresent(pkgBasePriceTextBox)) { basePrice = Convert.ToDecimal(pkgBasePriceTextBox.Text); SelectedPackage.PkgBasePrice = basePrice; SelectedPackage.PkgName = pkgName; if (string.IsNullOrWhiteSpace(pkgAgencyCommissionTextBox.Text)) { SelectedPackage.PkgAgencyCommission = null; } else { SelectedPackage.PkgAgencyCommission = Convert.ToDecimal(pkgAgencyCommissionTextBox.Text); } if (string.IsNullOrWhiteSpace(pkgDescTextBox.Text)) { SelectedPackage.PkgDesc = null; } else { SelectedPackage.PkgDesc = pkgDescTextBox.Text; } if (pkgStartDateDateTimePicker.Checked == false && pkgEndDateDateTimePicker.Checked == false) { SelectedPackage.PkgStartDate = null; SelectedPackage.PkgEndDate = null; } else if (pkgStartDateDateTimePicker.Checked == true && pkgEndDateDateTimePicker.Checked == false) { // Package End Date has not been provided yet SelectedPackage.PkgStartDate = pkgStartDateDateTimePicker.Value.Date; SelectedPackage.PkgEndDate = null; } else if (pkgStartDateDateTimePicker.Checked == false && pkgEndDateDateTimePicker.Checked == true) { MessageBox.Show("Must Provide a Valid Start Date"); DateValid = false; DialogResult = DialogResult.None; } else { if (DateTime.Compare(pkgStartDateDateTimePicker.Value, pkgEndDateDateTimePicker.Value) >= 0) { MessageBox.Show("Start Date must be earlier than End Date"); DateValid = false; DialogResult = DialogResult.None; } else { SelectedPackage.PkgStartDate = pkgStartDateDateTimePicker.Value.Date; SelectedPackage.PkgEndDate = pkgEndDateDateTimePicker.Value.Date; } } if (DateValid) { // Update package in database try { if (!PackageDB.UpdatePackage(OldPackage, SelectedPackage)) { MessageBox.Show("Another user has updated or " + "deleted that Package.", "Database Error"); DialogResult = DialogResult.Retry; PkgUpdated = false; } else { PkgUpdated = true; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } } else { ValidPrice = false; DialogResult = DialogResult.None; } if (ValidPrice && DateValid && PkgUpdated) { productId = (int)prodNameComboBox.SelectedValue; supplierId = (int)supNameComboBox.SelectedValue; // Check if the combination of productId and supplierId already exists in database if (ProductsSupplierDB.GetProductsSupplierByProductIdAndSupplierId(productId, supplierId) == null) { // if doesn't exist in database, insert a new record ProductsSupplier prodSupps = new ProductsSupplier { ProductId = productId, SupplierId = supplierId }; // Insert into database int prodSuppId = ProductsSupplierDB.AddProductsSupplier(prodSupps); prodSupps.ProductSupplierId = prodSuppId; SelectedProductsSupplier = prodSupps; ProdSuppInserted = true; } else { SelectedProductsSupplier = ProductsSupplierDB.GetProductsSupplierByProductIdAndSupplierId(productId, supplierId); ProdSuppInserted = false; } // Update Packages_Products_Supplier table try { // If there already exists a same packageId and ProductSupplierId combination var pkgProdSuppTable = PkgProdSupps.SingleOrDefault(p => p.PackageId == SelectedPackage.PackageId && p.ProductSupplierId == SelectedProductsSupplier.ProductSupplierId); if (pkgProdSuppTable != null) { MessageBox.Show("Package: " + SelectedPackage.PkgName + " with \n" + "Product Name: " + prodNameComboBox.Text + "\nSupplier Name: " + supNameComboBox.Text + " \nalready exists", "Record Exists"); DialogResult = DialogResult.None; } else { // Verify against database PackagesProductsSuppliers pkgPS = PackagesProductsSuppliersDB.GetPackagesProductsSuppliersByPkgIdAndProductSupplierId(SelectedPackage.PackageId, SelectedProductsSupplier.ProductSupplierId); if (pkgPS == null) { SelectedPkgProdSupp.ProductSupplierId = SelectedProductsSupplier.ProductSupplierId; if (!PackagesProductsSuppliersDB.UpdatePackagesProductsSuppliers(OldPkgProdSupp, SelectedPkgProdSupp)) { MessageBox.Show("Another user has updated or " + "deleted that Package.", "Database Error"); DialogResult = DialogResult.Retry; } else { DialogResult = DialogResult.OK; } } else { MessageBox.Show("Package: " + SelectedPackage.PkgName + " with \n" + "Product Name: " + prodNameComboBox.Text + "\nSupplier Name: " + supNameComboBox.Text + " \nalready exists", "Record Exists"); SelectedPkgProdSupp = pkgPS; DialogResult = DialogResult.OK; } } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } } else { DialogResult = DialogResult.None; } } else { DialogResult = DialogResult.None; } }
private void btnAdd_Click(object sender, EventArgs e) { string pkgName; decimal basePrice; int productId; int supplierId; if (Validator.IsPresent(pkgNameTextBox)) { pkgName = pkgNameTextBox.Text; // If Package Name already exists, get package object from database bool ValidPrice = true; bool DateValid = true; var pkg = packages.SingleOrDefault(p => p.PkgName.ToLower() == pkgName.ToLower()); if (pkg != null) { Package = pkg; PkgInserted = false; } else { // Verify against database Package pkgExist = PackageDB.GetPackageByName(pkgName); if (pkgExist == null) { Package newPkg = new Package(); if (Validator.IsPresent(pkgBasePriceTextBox)) { basePrice = Convert.ToDecimal(pkgBasePriceTextBox.Text); newPkg.PkgBasePrice = basePrice; newPkg.PkgName = pkgName; if (string.IsNullOrWhiteSpace(pkgAgencyCommissionTextBox.Text)) { newPkg.PkgAgencyCommission = null; } else { newPkg.PkgAgencyCommission = Convert.ToDecimal(pkgAgencyCommissionTextBox.Text); } if (string.IsNullOrWhiteSpace(pkgDescTextBox.Text)) { newPkg.PkgDesc = null; } else { newPkg.PkgDesc = pkgDescTextBox.Text; } if (pkgStartDateDateTimePicker.Checked == false && pkgEndDateDateTimePicker.Checked == false) { newPkg.PkgStartDate = null; newPkg.PkgEndDate = null; } else if (pkgStartDateDateTimePicker.Checked == true && pkgEndDateDateTimePicker.Checked == false) { // Package End Date has not been provided yet newPkg.PkgStartDate = pkgStartDateDateTimePicker.Value.Date; newPkg.PkgEndDate = null; } else if (pkgStartDateDateTimePicker.Checked == false && pkgEndDateDateTimePicker.Checked == true) { MessageBox.Show("Must Provide a Valid Start Date"); DateValid = false; DialogResult = DialogResult.None; } else { if (DateTime.Compare(pkgStartDateDateTimePicker.Value, pkgEndDateDateTimePicker.Value) >= 0) { MessageBox.Show("Start Date must be earlier than End Date"); DateValid = false; DialogResult = DialogResult.None; } else { newPkg.PkgStartDate = pkgStartDateDateTimePicker.Value.Date; newPkg.PkgEndDate = pkgEndDateDateTimePicker.Value.Date; } } if (DateValid) { // Add package to database int pkgId = PackageDB.AddPackage(newPkg); newPkg.PackageId = pkgId; Package = newPkg; PkgInserted = true; } } else { ValidPrice = false; DialogResult = DialogResult.None; } } else // Package with pkgName exists in database { Package = pkgExist; PkgInserted = true; } } if (ValidPrice && DateValid) { productId = (int)prodNameComboBox.SelectedValue; supplierId = (int)supNameComboBox.SelectedValue; // Check if the combination of productId and supplierId already exists in database if (ProductsSupplierDB.GetProductsSupplierByProductIdAndSupplierId(productId, supplierId) == null) { // if doesn't exist in database, insert a new record ProductsSupplier prodSupps = new ProductsSupplier { ProductId = productId, SupplierId = supplierId }; // Insert into database int prodSuppId = ProductsSupplierDB.AddProductsSupplier(prodSupps); prodSupps.ProductSupplierId = prodSuppId; productsSupplier = prodSupps; ProdSuppInserted = true; } else { productsSupplier = ProductsSupplierDB.GetProductsSupplierByProductIdAndSupplierId(productId, supplierId); ProdSuppInserted = false; } // If there already exists a same packageId and ProductSupplierId combination var pkgProdSuppTable = pkgProdSupps.SingleOrDefault(p => p.PackageId == Package.PackageId && p.ProductSupplierId == productsSupplier.ProductSupplierId); if (pkgProdSuppTable != null) { MessageBox.Show("Package: " + Package.PkgName + " with \n" + "Product Name: " + prodNameComboBox.Text + "\nSupplier Name: " + supNameComboBox.Text + " \nalready exists", "Record Exists"); DialogResult = DialogResult.None; } else { // Verify against database PackagesProductsSuppliers pkgPS = PackagesProductsSuppliersDB.GetPackagesProductsSuppliersByPkgIdAndProductSupplierId(Package.PackageId, productsSupplier.ProductSupplierId); if (pkgPS == null) { PackagesProductsSuppliers pps = new PackagesProductsSuppliers(); pps.PackageId = Package.PackageId; pps.ProductSupplierId = productsSupplier.ProductSupplierId; // Insert into database PackagesProductsSuppliersDB.AddPackagesProductsSuppliers(pps); pkgProdSupp = pps; DialogResult = DialogResult.OK; } else { MessageBox.Show("Package: " + Package.PkgName + " with \n" + "Product Name: " + prodNameComboBox.Text + "\nSupplier Name: " + supNameComboBox.Text + " \nalready exists", "Record Exists"); pkgProdSupp = pkgPS; DialogResult = DialogResult.OK; } } } else { DialogResult = DialogResult.None; } } else { DialogResult = DialogResult.None; } }
public async Task <ActionResult <PackagesProductsSuppliers> > PostPackagesProductsSuppliers(PackagesProductsSuppliers packagesProductsSuppliers) { _context.PackagesProductsSuppliers.Add(packagesProductsSuppliers); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (PackagesProductsSuppliersExists(packagesProductsSuppliers.PackageId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetPackagesProductsSuppliers", new { id = packagesProductsSuppliers.PackageId }, packagesProductsSuppliers)); }
public async Task <IActionResult> PutPackagesProductsSuppliers(int id1, int id2, PackagesProductsSuppliers packagesProductsSuppliers) { if (id1 != packagesProductsSuppliers.PackageId) { return(BadRequest()); } _context.Entry(packagesProductsSuppliers).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PackagesProductsSuppliersExists(id1, id2)) { return(NotFound()); } else { throw; } } return(NoContent()); }