// 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
示例#4
0
        //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
示例#9
0
        //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);
        }
示例#10
0
        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;
        }
示例#11
0
        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;
            }
        }
示例#12
0
        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;
            }
        }
示例#13
0
        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));
        }
示例#14
0
        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());
        }