public void BenutzerSpeichern(Benutzer benutzer) { // bei dieser Art Caste wird keine Exception geschmissen // Falls der Cast-Typ falsch ist, wird null zurück gegeben DbDozent dbDozent = AppStatus.EingeloggterBenutzer as DbDozent; // Falls zu speichernder benutzer ein Schüler ist (rollen_nr==3) // und eingeloggter Benutzer ein Dozent ist if (benutzer.Rollen_nr == 3 && dbDozent != null) { dbDozent.Save(benutzer); return; } DbAdmin dbAdmin = (DbAdmin)AppStatus.EingeloggterBenutzer; dbAdmin.Save(benutzer); }
// Implementierung der Schnittstelle IDatenhaltung public Benutzer BenutzerAnlegen(string login_name, string email_adresse, string passwort, uint rollen_nr) { DbAdmin dbAdmin = (DbAdmin)AppStatus.EingeloggterBenutzer; return(dbAdmin.Create(login_name, email_adresse, passwort, rollen_nr)); }
public static Benutzer Read(Connector connector, uint benutzer_nr) { // unser Rückgabe-Objekt Benutzer benutzer = null; connector.Connection.Open(); string query = "SELECT * FROM T_Benutzer WHERE p_benutzer_nr = " + benutzer_nr; DbDataReader reader = connector.ExecuteReader(query); if (reader.HasRows) { reader.Read(); uint _p_benutzer_nr = (uint)reader["p_benutzer_nr"]; string _login_name = (string)reader["login_name"]; string _email_adresse = (string)reader["email_adresse"]; string _passwort = (string)reader["passwort"]; uint _fk_rolle_nr = (uint)reader["fk_rolle_nr"]; switch (_fk_rolle_nr) { case 1: benutzer = new DbAdmin(_p_benutzer_nr, _login_name, _email_adresse, _passwort); break; case 2: benutzer = new DbDozent(_p_benutzer_nr, _login_name, _email_adresse, _passwort); break; case 3: benutzer = new DbSchueler(_p_benutzer_nr, _login_name, _email_adresse, _passwort); break; default: // TODO besser als Check-Constraint in der DB realisieren throw new UnsupportedRoleException(); } reader.Close(); // Jetzt lesen wir noch die Fächer ein // Warum ist das eigentlich hier implementiert worden ? // query = "SELECT * FROM T_Faecher WHERE f_benutzer_nr = " + benutzer.Benutzer_nr; reader = connector.ExecuteReader(query); if (reader.HasRows) { int i = 0; while (i < 5 && reader.Read()) { uint _fach_nr = (uint)reader["p_fach_nr"]; uint _kapazitaet = (uint)reader["kapazitaet"]; uint _anzahl_wiederholungen = (uint)reader["anzahl_wiederholungen"]; uint _wiederholungs_zeitspanne = (uint)reader["wiederholungs_zeitspanne"]; uint _benutzer_nr = (uint)reader["f_benutzer_nr"]; DbFach dbFach = new DbFach(_fach_nr, _kapazitaet, _anzahl_wiederholungen, _wiederholungs_zeitspanne, _benutzer_nr); benutzer.FachListe[i] = dbFach; i++; } } reader.Close(); } else { connector.Connection.Close(); throw new DbFrageReadException(); } connector.Connection.Close(); return(benutzer); }