/*
         * In de DeleteScript partial class van de Database klasse worden alle functies voor het verwijderen van een object 
         * uit de database geinitialiseerd. Elke functienaam begint met Delete en vervolgens het object dat verwijderd moet
         * worden. Er wordt een object meegegeven omdat alle nodige eigenschappen van het object nodig zijn om het object te verwijderen.
         * 
        */
        public void DeleteProduct(Product product)
        {
            using (OracleConnection connection = Connection)
            {
                string delete = "DELETE PRODUCT WHERE PRODUCTID = :ParaID";
                using (OracleCommand command = new OracleCommand(delete, connection))
                {
                    command.Parameters.Add(new OracleParameter("ParaID", product.ProductId));
                    command.ExecuteNonQuery();
                }
            }

        }
        public void TestProductToevoegen()
        {
            startProduct = new Product(1, "TestProduct", 1, "TestBeschrijving", "TestBezorgtijd", "AfbeeldingPath", categorie, null);
            admin.AddProduct(startProduct);
            Assert.AreEqual(startProduct.Naam, "TestProduct");
            Assert.AreEqual(startProduct.Prijs, 1);
            Assert.AreEqual(startProduct.Beschrijving, "TestBeschrijving");
            Assert.AreEqual(startProduct.Bezorgtijd, "TestBezorgtijd");
            Assert.AreEqual(startProduct.AfbeeldingPath, "AfbeeldingPath");
            Assert.AreEqual(startProduct.Categorie, categorie);

            Assert.AreEqual("TestProduct", startProduct.Naam);
            Assert.AreEqual(1, startProduct.Prijs);
            Assert.AreEqual("TestBeschrijving", startProduct.Beschrijving);
            Assert.AreEqual("TestBezorgtijd", startProduct.Bezorgtijd);
            Assert.AreEqual("AfbeeldingPath", startProduct.AfbeeldingPath);
            Assert.AreEqual(categorie, startProduct.Categorie);

            admin.DeleteProduct(startProduct);
        }
 public void ProductTest()
 {
     Product product = new Product(1, "naam", 1, "beschrijving", "bezorgtijd",
         "afbeeldingpath", null, null);
     
     Assert.AreEqual(1, product.ProductId);
     Assert.AreEqual("naam", product.Naam);
     Assert.AreEqual(1, product.Prijs);
     Assert.AreEqual("beschrijving", product.Beschrijving);
     Assert.AreEqual("bezorgtijd", product.Bezorgtijd);
     Assert.IsNull(product.Specificaties);
     Assert.IsNull(product.Categorie);
 }
 public void DeleteProduct(Product product)
 {
     db.DeleteProduct(product);
 }
 public void AddProduct(Product product)
 {
     db.InsertProduct(product);
 }
 public void InsertProduct(Product product)
 {
     using (OracleConnection connection = Connection)
     {
         string insert = "INSERT INTO PRODUCT VALUES (seq_Product_ID.nextval, :CategorieID, :NAAM, :PRIJS, :BESCHRIJVING, :BEZORGTIJD, :Afbeeldingpath)";
         using (OracleCommand command = new OracleCommand(insert, connection))
         {
             command.Parameters.Add(new OracleParameter("CategorieID", product.Categorie.CategorieId));
             command.Parameters.Add(new OracleParameter("NAAM", product.Naam));
             command.Parameters.Add(new OracleParameter("PRIJS", product.Prijs));
             command.Parameters.Add(new OracleParameter("BESCHRIJVING", product.Beschrijving));
             command.Parameters.Add(new OracleParameter("BEZORGTIJD", product.Bezorgtijd));
             command.Parameters.Add(new OracleParameter("Afbeeldingpath", product.AfbeeldingPath));
             command.ExecuteNonQuery();
         }
     }
     
 }
 public Exemplaar(int serienummer, decimal verkoopprijs, Product product)
 {
     Serienummer = serienummer;
     Verkoopprijs = verkoopprijs;
     Product = product;
 }
        protected void OnClick(object sender, EventArgs e)
        {
            string selected = ddlCategorien.SelectedItem.Text;
            int parentId = 0;

            List<Categorie> parentCategorien = db.GetAlleParentCategorien();
            List<Categorie> childCategorien = new List<Categorie>();
            List<Categorie> subChildCategorien = new List<Categorie>();

            foreach (Categorie c in parentCategorien)
            {
                if (c.CategorieNaam == selected)
                {
                    int catId = c.CategorieId;
                    childCategorien = db.GetAllChildCategorien(catId);
                }
            }

            selected = ddlSubCategorien.SelectedItem.Text;

            foreach (Categorie c in childCategorien)
            {
                if (c.CategorieNaam == selected)
                {
                    parentId = c.CategorieId;
                    subChildCategorien = db.GetAllSecondChildCategorien(parentId);
                }
            }

            string catNaam = ddlSecondSubCategorien.Text;
            try
            {
                foreach (Categorie c in subChildCategorien)
                {
                    if (c.CategorieNaam == catNaam)
                    {
                        var product = new Product(0, tbxNaam.Text, Convert.ToDecimal(tbxPrijs.Text), tbxBeschrijving.Text,
                            ddlBezorgtijd.Text, tbxAfbeeldingpath.Text, c, null);
                        administratie.AddProduct(product);
                        Response.Redirect("/Pages/Homepage.aspx");
                    }
                }
            }
            catch
            {
                Console.WriteLine("Er is iets niet ingevuld");
            }


        }