/// <summary> /// Löscht die zur Zeit geladene Umfrage aus der Datenbank /// Es werden alle zugehörigen Datensätze (Fragen, Antworten...) rekursiv mit gelöscht. /// </summary> /// <param name="owner">der Benutzer, der die Umfrage löschen will</param> public void DeleteFromDB(UserInfo owner) { if (!IsLoaded) { return; } if (!owner.IsLoggedIn) { return; } DataAccessUmfragen daUmfr = new DataAccessUmfragen(); DSUmfragen dsUmfr = daUmfr.GetUmfrageByID(m_umfrageID); if (dsUmfr.umfragen.Count != 1) { // wenn nicht genau 1 Datensatz zurückkommt, stimmt was nicht // TODO: Exception werfen } else if (!dsUmfr.umfragen[0].r_userID.Equals(owner.UserID) && !owner.IsAdmin) { // die Umfrage gehört nicht dem eingeloggten Benutzer und dieser ist kein Admin // TODO: Exception } else { daUmfr.DeleteUmfrage(m_umfrageID); } }
private void SaveUmfrage() { if (IsValid) { // Fehlermessage zurückssetzen m_lbValidatorMessageTitel.Visible = false; int onlinestatus = (m_chbOnline.Checked ? DBConstants.Online : DBConstants.NotOnline); UmfrageInfo umfr = SessionContainer.ReadFromSession(this).Umfrage; UserInfo user = SessionContainer.ReadFromSession(this).User; // Umfragedatensatz aktualisieren oder neu anlegen DataAccessUmfragen daUmfr = new DataAccessUmfragen(); DSUmfragen dsUmfr = daUmfr.GetUmfrageByID(umfr.UmfrageID); if (dsUmfr.umfragen.Count == 0) { // Umfrage besteht noch nicht in der DB, neuen Datensatz anlegen dsUmfr.umfragen.AddumfragenRow(m_txtTitel.Text.Trim(), m_txtComment.Text.Trim(), System.DateTime.Now, System.DateTime.Now, user.UserID, onlinestatus); } else if (dsUmfr.umfragen.Count == 1) { // Umfrage besteht schon, Datensatz aktualisieren dsUmfr.umfragen[0].Titel = m_txtTitel.Text.Trim(); dsUmfr.umfragen[0].Beschreibung = m_txtComment.Text.Trim(); dsUmfr.umfragen[0].Onlinestatus = onlinestatus; } daUmfr.CommitChanges(dsUmfr); // ID des neuen Datensatzes in die Session schreiben if (dsUmfr.umfragen[0].UmfrageID != umfr.UmfrageID) { umfr.Load(dsUmfr.umfragen[0].UmfrageID); } } else { m_lbValidatorMessageTitel.Visible = true; } }