protected void BtnVoegToe_Click(object sender, EventArgs e)
        {
            bool success = false;
            int objectCat = db.GetCategorieInfo(ddlCategorie.SelectedItem.ToString()).CategorieID;

            if (txtOmschrijving.Text != string.Empty)
            {
                valOmschrijving.Visible = false;
                Verzamelobject newObject = new Verzamelobject()
                {
                    CategorieID = objectCat,
                    Omschrijving = txtOmschrijving.Text,
                    Land = txtLand.Text,
                    Identificatiecode = txtIdentificatiecode.Text,
                    Jaartal = txtJaartal.Text,
                    DatumToegevoegd = DateTime.Now,
                    LaatsteWijziging = DateTime.Now
                };
                success = db.AddNewObject(newObject);
            }
            else
            {
                valOmschrijving.Visible = true;
            }

            if(success)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Het object is succesvol toegevoegd!');", true);
                Response.AddHeader("REFRESH", "0;URL=Home.aspx");
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Het object kon niet toegevoegd worden. Probeer het opnieuw of contacteer een administrator.');", true);
                Response.AddHeader("REFRESH", "0;URL=Home.aspx");
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            verzamelobject = db.GetObjectInfo((string)Session["selectedObject"]);

            if ((bool)Session["loggedIn"] == true)
            {
                BtnVoegToeAanVerzameling.Visible = true;
                if(CheckObjectAlreadyInCollection())
                {
                    BtnVoegToeAanVerzameling.Text = "Verwijder uit verzameling";
                    BtnSlaOp.Text = "Verwijder";
                    txtAankoopprijs.Visible = false;
                    txtOpmerkingen.Visible = false;
                    lblOngeldigePrijs.Visible = false;
                }
                else
                {
                    BtnVoegToeAanVerzameling.Text = "Voeg toe aan je verzameling";
                    BtnSlaOp.Text = "Voeg toe";
                    txtAankoopprijs.Visible = true;
                    txtOpmerkingen.Visible = true;
                }
            }
            else
            {
                BtnVoegToeAanVerzameling.Visible = false;
            }

            if(verzamelobject.Land != null)
            {
                lblLand.Text = verzamelobject.Land;
            }

            if(verzamelobject.Identificatiecode != null)
            {
                lblIdentificatiecode.Text = verzamelobject.Identificatiecode;
            }

            lblOmschrijving.Text = verzamelobject.Omschrijving;
            lblJaartal.Text = verzamelobject.Jaartal;
            lblDatumToegevoegd.Text = verzamelobject.DatumToegevoegd.ToShortDateString();
            lblDatumLaatsteWijziging.Text = verzamelobject.LaatsteWijziging.ToShortDateString();

            lblCategorie.Text = db.GetCategorieInfo(verzamelobject.CategorieID).Categorienaam;
        }
        public List<Verzamelobject> GetUserCollection(Gebruiker user)
        {
            List<Verzamelobject> objects = new List<Verzamelobject>();
            connection.Open();
            //werkt niet, waarschijnlijk door tabelnaam 'OBJECT'. Query werkt wel in Oracle SQL Developer
            OracleCommand command = new OracleCommand("SELECT * FROM OBJECT WHERE OBJECTID IN (SELECT OBJECTID FROM OBJECTPERGEBRUIKER WHERE GEBRUIKERID = :userID)", connection);
            OracleParameter parUserID = new OracleParameter("userID", user.GebruikerID);
            command.Parameters.Add(parUserID);

            OracleDataReader reader;
            try
            {
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Verzamelobject newObject = new Verzamelobject();
                    newObject.ObjectID = (int)reader["OBJECTID"];
                    newObject.CategorieID = (int)reader["CATEGORIEID"];
                    newObject.Omschrijving = (string)reader["OMSCHRIJVING"];
                    if (reader["LAND"] != DBNull.Value)
                    {
                        newObject.Land = (string)reader["LAND"];
                    }
                    else
                    {
                        newObject.Land = null;
                    }

                    newObject.DatumToegevoegd = (DateTime)reader["DATUMTOEGEVOEGD"];
                    newObject.LaatsteWijziging = (DateTime)reader["DATUMLAATSTEWIJZIGING"];
                    if (reader["IDENTIFICATIECODE"] != DBNull.Value)
                    {
                        newObject.Identificatiecode = (string)reader["IDENTIFICATIECODE"];
                    }
                    else
                    {
                        newObject.Identificatiecode = null;
                    }

                    if (reader["JAARTAL"] != DBNull.Value)
                    {
                        newObject.Jaartal = (string)reader["JAARTAL"];
                    }
                    else
                    {
                        newObject.Jaartal = null;
                    }
                    objects.Add(newObject);
                }
                connection.Close();
                reader.Close();
                return objects;
            }
            catch (OracleException ex)
            {
                Console.WriteLine("Record is not inserted into the database table.");
                Console.WriteLine("Exception Message: " + ex.Message);
                Console.WriteLine("Exception Source: " + ex.Source);
                return null;
            }
        }
        public Verzamelobject GetObjectInfo(string omschrijving)
        {
            connection.Open();
            OracleCommand command = new OracleCommand("SELECT * FROM OBJECT WHERE OMSCHRIJVING = :omschrijving", connection);
            OracleParameter parOmschrijving = new OracleParameter("omschrijving", omschrijving);
            command.Parameters.Add(parOmschrijving);
            OracleDataReader reader;
            reader = command.ExecuteReader();
            reader.Read();
            Verzamelobject returnObject = new Verzamelobject()
            {
                ObjectID = (int)reader["OBJECTID"],
                CategorieID = (int)reader["CATEGORIEID"],
                Omschrijving = omschrijving,
                DatumToegevoegd = (DateTime)reader["DATUMTOEGEVOEGD"],
                LaatsteWijziging = (DateTime)reader["DATUMLAATSTEWIJZIGING"],
            };

            if(reader["LAND"] != DBNull.Value)
            {
                returnObject.Land = (string)reader["LAND"];
            }
            else
            {
                returnObject.Land = null;
            }

            if(reader["IDENTIFICATIECODE"] != DBNull.Value)
            {
                returnObject.Identificatiecode = (string)reader["IDENTIFICATIECODE"];
            }
            else
            {
                returnObject.Identificatiecode = null;
            }

            if (reader["JAARTAL"] != DBNull.Value)
            {
                returnObject.Jaartal = (string)reader["JAARTAL"];
            }
            else
            {
                returnObject.Jaartal = null;
            }

            connection.Close();
            return returnObject;
        }
        public List<Verzamelobject> GetCategoryCollection(Categorie category)
        {
            List<Verzamelobject> objects = new List<Verzamelobject>();
            connection.Open();
            OracleCommand command = new OracleCommand("SELECT * FROM OBJECT WHERE CATEGORIEID = :catid", connection);
            OracleParameter parCatID = new OracleParameter("catid", category.CategorieID);
            command.Parameters.Add(parCatID);

            OracleDataReader reader;
            try
            {
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Verzamelobject newObject = new Verzamelobject();
                    newObject.ObjectID = (int)reader["OBJECTID"];
                    newObject.CategorieID = (int)reader["CATEGORIEID"];
                    newObject.Omschrijving = (string)reader["OMSCHRIJVING"];
                    if (reader["LAND"] != DBNull.Value)
                    {
                        newObject.Land = (string)reader["LAND"];
                    }
                    else
                    {
                        newObject.Land = null;
                    }

                    newObject.DatumToegevoegd = (DateTime)reader["DATUMTOEGEVOEGD"];
                    newObject.LaatsteWijziging = (DateTime)reader["DATUMLAATSTEWIJZIGING"];
                    if (reader["IDENTIFICATIECODE"] != DBNull.Value)
                    {
                        newObject.Identificatiecode = (string)reader["IDENTIFICATIECODE"];
                    }
                    else
                    {
                        newObject.Identificatiecode = null;
                    }

                    if (reader["JAARTAL"] != DBNull.Value)
                    {
                        newObject.Jaartal = (string)reader["JAARTAL"];
                    }
                    else
                    {
                        newObject.Jaartal = null;
                    }
                    objects.Add(newObject);
                }
                connection.Close();
                reader.Close();
                return objects;
            }
            catch (OracleException ex)
            {
                Console.WriteLine("Record is not inserted into the database table.");
                Console.WriteLine("Exception Message: " + ex.Message);
                Console.WriteLine("Exception Source: " + ex.Source);
                return null;
            }
        }
        public List<Verzamelobject> Get10LatestChangedObjects()
        {
            List<Verzamelobject> objects = new List<Verzamelobject>();
            connection.Open();
            OracleCommand command = new OracleCommand("SELECT * FROM (SELECT * FROM OBJECT ORDER BY DATUMLAATSTEWIJZIGING DESC) WHERE ROWNUM <= 10", connection);
            OracleDataReader reader;
            reader = command.ExecuteReader();
            while(reader.Read())
            {
                Verzamelobject newObject = new Verzamelobject();
                newObject.ObjectID = (int)reader["OBJECTID"];
                newObject.CategorieID = (int)reader["CATEGORIEID"];
                newObject.Omschrijving = (string)reader["OMSCHRIJVING"];
                if(reader["LAND"] != DBNull.Value)
                {
                    newObject.Land = (string)reader["LAND"];
                }
                else
                {
                    newObject.Land = null;
                }

                newObject.DatumToegevoegd = (DateTime)reader["DATUMTOEGEVOEGD"];
                newObject.LaatsteWijziging = (DateTime)reader["DATUMLAATSTEWIJZIGING"];
                if(reader["IDENTIFICATIECODE"] != DBNull.Value)
                {
                    newObject.Identificatiecode = (string)reader["IDENTIFICATIECODE"];
                }
                else
                {
                    newObject.Identificatiecode = null;
                }

                if(reader["JAARTAL"] != DBNull.Value)
                {
                    newObject.Jaartal = (string)reader["JAARTAL"];
                }
                else
                {
                    newObject.Jaartal = null;
                }
                objects.Add(newObject);
            }
            connection.Close();
            return objects;
        }
        public bool AddNewObject(Verzamelobject newObject)
        {
            bool success = false;
            int newObjectId = 0;

            connection.Open();
            OracleCommand command = new OracleCommand();
            command.Connection = connection;

            command.CommandText = "SELECT MAX(OBJECTID) FROM OBJECT";
            newObjectId = (int)((decimal)command.ExecuteScalar() + 1);

            newObject.ObjectID = newObjectId;

            command.CommandText = "INSERT INTO OBJECT VALUES (:objectid, :categorieid, :omschrijving, :land, :datumtoegevoegd, :laatstewijziging, :identificatiecode, :jaartal)";
            OracleParameter parObjectID = new OracleParameter("objectid", newObject.ObjectID);
            OracleParameter parCatID = new OracleParameter("categorieid", newObject.CategorieID);
            OracleParameter parOmschrijving = new OracleParameter("omschrijving", newObject.Omschrijving);
            OracleParameter parLand = new OracleParameter("land", newObject.Land);
            OracleParameter parDatumToegevoegd = new OracleParameter("datumtoegevoegd", newObject.DatumToegevoegd);
            OracleParameter parLaatsteWijziging = new OracleParameter("laatstewijziging", newObject.LaatsteWijziging);
            OracleParameter parIdentificatiecode = new OracleParameter("identificatiecode", newObject.Identificatiecode);
            OracleParameter parJaartal = new OracleParameter("jaartal", newObject.Jaartal);

            command.Parameters.Add(parObjectID);
            command.Parameters.Add(parCatID);
            command.Parameters.Add(parOmschrijving);
            command.Parameters.Add(parLand);
            command.Parameters.Add(parDatumToegevoegd);
            command.Parameters.Add(parLaatsteWijziging);
            command.Parameters.Add(parIdentificatiecode);
            command.Parameters.Add(parJaartal);

            try
            {
                if (command.ExecuteNonQuery() == 1)
                {
                    success = true;
                }
            }
            catch (OracleException ex)
            {
                Console.WriteLine("Record is not inserted into the database table.");
                Console.WriteLine("Exception Message: " + ex.Message);
                Console.WriteLine("Exception Source: " + ex.Source);
            }
            finally
            {
                connection.Close();
            }

            return success;
        }
 public bool VoegVerzamelobjectToe(Verzamelobject nieuwObject)
 {
     return false;
 }