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(); } }
/// <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); } }