public void BtnBevestig_ClickTest()
        {
            int reserveringsNummer = DatabaseKoppeling.GetNieuwReserveringsnummer();
            Reservering reservering = new Reservering(reserveringsNummer, "false");
            DatabaseKoppeling.AddReservering(reservering);
            string rfid = DatabaseKoppeling.GetVrijRFID();
            BetalendeKlant klant = new BetalendeKlant(rfid, "Klaas Jansen", "125879654", "*****@*****.**", "0497641565", "Hoge Veluwe", "Garstbocht 2", "84.15.45.122", "4584 AK", reserveringsNummer);
            DatabaseKoppeling.AddBetalendeKlant(klant);

            DatabaseKoppeling.AddReserveringPlaats(reserveringsNummer, "3");
            DatabaseKoppeling.AddReserveringPlaats(reserveringsNummer, "8");

            string vrijRFID = DatabaseKoppeling.GetVrijRFID();
            Klant klant2 = new Klant(vrijRFID, reserveringsNummer);
            DatabaseKoppeling.AddKlant(klant2);
            string vrijRFID2 = DatabaseKoppeling.GetVrijRFID();
            Klant klant3 = new Klant(vrijRFID2, reserveringsNummer);
            DatabaseKoppeling.AddKlant(klant3);

            int actual1 = DatabaseKoppeling.GetAantalPersonen(reserveringsNummer);
            int expected1 = 3;
            Assert.AreEqual(expected1, actual1);

            BetalendeKlant actual2 = DatabaseKoppeling.GetKlantBetalend(reserveringsNummer);
            BetalendeKlant expected2 = klant;
            Assert.AreEqual(expected2.Naam, actual2.Naam);
            Assert.AreEqual(expected2.Rfid, actual2.Rfid);
        }
        /// <summary>
        /// Maakt een Klant_betalend aan in een al BESTAANDE reservering.
        /// </summary>
        /// <param name="klant">De Klant_betalend gegevens die toegevoegd worden.</param>
        public static void AddBetalendeKlant(BetalendeKlant klant)
        {
            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.Parameters.Add(new OracleParameter("naam", klant.Naam.ToString()));
            cmd.Parameters.Add(new OracleParameter("straat", klant.Straat.ToString()));
            cmd.Parameters.Add(new OracleParameter("postcode", klant.Postcode.ToString()));
            cmd.Parameters.Add(new OracleParameter("woonplaats", klant.Woonplaats.ToString()));
            cmd.Parameters.Add(new OracleParameter("telefoon", klant.Telefoon.ToString()));
            cmd.Parameters.Add(new OracleParameter("email", klant.Email.ToString()));
            cmd.Parameters.Add(new OracleParameter("rekeningnummer", klant.Rekeningnummer.ToString()));
            cmd.Parameters.Add(new OracleParameter("sofi", klant.Sofi.ToString()));
            cmd.CommandText = "INSERT ALL INTO PERSOON (RFID, WACHTWOORD, TYPE) VALUES('" + klant.Rfid + "', '" + SHA1Hashing.MaakSHA1(klant.Wachtwoord) + "', '" + klant.Type + "') INTO KLANT_BETALEND (RFID, RESERVERINGSNUMMER, NAAM, STRAAT, POSTCODE, WOONPLAATS, TELEFOON, EMAIL, REKENINGNUMMER, SOFINUMMER) VALUES ('" + klant.Rfid + "', " + klant.Reserveringsnummer + ", :naam, :straat, :postcode, :woonplaats, :telefoon, :email, :rekeningnummer, :sofi) SELECT * FROM dual";

            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Deze knop bevestigd de reservering. En voegt het aantal personen voor de reservering 
        /// toe aan de DB of verwijderd ze als het er minder zijn geworden. Als het Form in de 
        /// wijzig modes staat worden de BetalendeKlant gegevens geupdat in de DB.
        /// LET OP: vul hier de juiste smtp server in! Voor fontys: smtp1.fontys.nl
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnBevestig_Click(object sender, EventArgs e)
        {
            try
            {
                //zorgt ervoor dat betalende klant alleen geupdate wordt als er op wijzigen is geklikt.
                if (!this.viewmode)
                {
                    BetalendeKlant klant = new BetalendeKlant(this.tbNaam.Text, this.tbSofinummer.Text, this.tbEmail.Text, this.tbTelefoon.Text, this.tbWoonplaats.Text, this.tbStraat.Text, this.tbRekening.Text, this.tbPostcode.Text, this.reserveringsNummer);
                    DatabaseKoppeling.UpdateKlantBetalend(klant);
                }

                if (this.nudAantal.Value > this.personen)
                {
                    //create zoveel extra personen als het verschil is
                    int verschil = (int)this.nudAantal.Value - this.personen;
                    for (int i = 0; i < verschil; i++)
                    {
                        string vrijRFID = DatabaseKoppeling.GetVrijRFID();
                        Klant klant = new Klant(vrijRFID, this.reserveringsNummer);
                        DatabaseKoppeling.AddKlant(klant);
                    }
                }
                else
                {
                    //Verwijder zoveel personen als het verschil is
                    int verschil = this.personen - (int)this.nudAantal.Value;
                    for (int i = 0; i < verschil; i++)
                    {
                        string rfid = DatabaseKoppeling.GetRFIDReservering(this.reserveringsNummer);
                        if (rfid != null)
                        {
                            DatabaseKoppeling.RemoveKlant(rfid);
                        }
                    }
                }

                SendMail mail = new SendMail();
                List<Persoon> inloggegevens = DatabaseKoppeling.GetInlogGegevens(this.reserveringsNummer);
                string body = mail.Mailbody(this.reserveringsNummer, this.tbNaam.Text, (int)this.nudAantal.Value, this.lblPrijs.Text, this.tbRekening.Text, inloggegevens);
                mail.VerzendMail("*****@*****.**", this.tbEmail.Text, "Bevestiging Reservering", body, "smtp1.fontys.nl");

                this.Close();
            }
            catch (Oracle.DataAccess.Client.OracleException)
            {
                MessageBox.Show("Ongeldige database actie. \nEr heeft zich een database restrictie voorgedaan of de connectie is verbroken.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// Past de gegevens aan van een Klant_betalend.
        /// </summary>
        /// <param name="klant">De gewijzigde gegevens van een Klant_betalend</param>
        public static void UpdateKlantBetalend(BetalendeKlant klant)
        {
            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.Parameters.Add(new OracleParameter("naam", klant.Naam.ToString()));
            cmd.Parameters.Add(new OracleParameter("straat", klant.Straat.ToString()));
            cmd.Parameters.Add(new OracleParameter("postcode", klant.Postcode.ToString()));
            cmd.Parameters.Add(new OracleParameter("woonplaats", klant.Woonplaats.ToString()));
            cmd.Parameters.Add(new OracleParameter("telefoon", klant.Telefoon));
            cmd.Parameters.Add(new OracleParameter("email", klant.Email.ToString()));
            cmd.Parameters.Add(new OracleParameter("rekeningnummer", klant.Rekeningnummer.ToString()));
            cmd.Parameters.Add(new OracleParameter("sofi", klant.Sofi.ToString()));
            cmd.CommandText = "UPDATE klant_betalend SET naam = :naam, straat = :straat, postcode = :postcode, woonplaats = :woonplaats, telefoon = :telefoon, email = :email, rekeningnummer = :rekeningnummer, sofinummer = :sofi WHERE reserveringsnummer = " + klant.Reserveringsnummer + string.Empty;

            try
            {
                conn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
        /// <summary>
        /// Haalt een klant_betalend op uit de database.
        /// </summary>
        /// <param name="reserveringsnummer">Het reserveringsnummer waarvan je de klant_betalend wilt ophalen.</param>
        /// <returns>Geeft een BetalendeKlant object terug.</returns>
        public static BetalendeKlant GetKlantBetalend(int reserveringsnummer)
        {
            BetalendeKlant klant = null;

            string sql = "SELECT * FROM klant_betalend WHERE reserveringsnummer = " + reserveringsnummer + string.Empty;
            OracleCommand cmd = new OracleCommand(sql, conn);

            try
            {
                conn.Open();
                OracleDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    klant = new BetalendeKlant(reader["RFID"].ToString(), reader["NAAM"].ToString(), reader["SOFINUMMER"].ToString(), reader["EMAIL"].ToString(), reader["TELEFOON"].ToString(), reader["WOONPLAATS"].ToString(), reader["STRAAT"].ToString(), reader["REKENINGNUMMER"].ToString(), reader["POSTCODE"].ToString(), Convert.ToInt32(reader["RESERVERINGSNUMMER"]));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }

            return klant;
        }
        /// <summary>
        /// Bevestigd een nieuwe reservering. De ingevulde gegevens worden weggeschreven naar de database. 
        /// En er wordt een nieuw reserveringsnummer aangemaakt.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnBevestig_Click(object sender, EventArgs e)
        {
            // query om laatste reserveringsnummer te krijgen
            // reserverings wegschrijven en betalende klant aanmaken
            // als dit gelukt is word het gekozen reserveringsnummer in de var gezet.
            // En dit form gesloten.

            try
            {
                reserveringsNummer = DatabaseKoppeling.GetNieuwReserveringsnummer();
                Reservering reservering = new Reservering(reserveringsNummer, "false");
                DatabaseKoppeling.AddReservering(reservering);
                string rfid = DatabaseKoppeling.GetVrijRFID();
                BetalendeKlant klant = new BetalendeKlant(rfid, tbNaam.Text, tbSofi.Text, tbEmail.Text, tbTelefoon.Text, tbWoonplaats.Text, tbStraat.Text, tbRekening.Text, tbPostcode.Text, reserveringsNummer);
                DatabaseKoppeling.AddBetalendeKlant(klant);
                gelukt = true;

                this.Close();
            }
            catch (Oracle.DataAccess.Client.OracleException)
            {
                MessageBox.Show("Ongeldige database actie. \nEr heeft zich een database restrictie voorgedaan of de connectie is verbroken.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }