/// <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 CheckAnswersExist() // { // UmfrageInfo umfr = SessionContainer.ReadFromSession(this).Umfrage; // if (!umfr.IsLoaded) // { // return; // } // // // // } private void LoadUmfrage() { DSUmfragen dsUmfr = SessionContainer.ReadFromSession(this).Umfrage.getLoadedUmfrage(); if (dsUmfr.umfragen.Rows.Count == 1) { // Editfelder mit Titel und Kurzbeschreibung der Umfrage füllen m_txtTitel.Text = dsUmfr.umfragen[0].Titel; m_txtComment.Text = dsUmfr.umfragen[0].Beschreibung; // Checkbox je nach Onlinestatus der Umfrage setzen m_chbOnline.Checked = (dsUmfr.umfragen[0].Onlinestatus == DBConstants.Online); // schon vorhandene Fragen aus der Datenbank ziehen RefreshDGFragen(); m_pnFrageErstellen.Visible = false; m_pnFrageUebernehmen.Visible = false; m_tblAntwortmoeglErstellen.Visible = false; } }
/// <summary> /// Überprüft, ob die geladene Umfrage dem eingeloggten Benutzer gehört /// </summary> /// <returns>true, wenn die geladene Umfrage dem eingeloggten Benutzer gehört /// false, wenn kein Benutzer eingeloggt ist, keine Umfrage geladen ist oder /// die geladene Umfrage nicht dem eingeloggten Benutzer gehört</returns> protected bool CheckUmfrageBelongsToUser() { // gar kein Benutzer eingeloggt: UserInfo user = SessionContainer.ReadFromSession(this).User; if (!user.IsLoggedIn) { return(false); } DSUmfragen dsUmfr = SessionContainer.ReadFromSession(this).Umfrage.getLoadedUmfrage(); if (dsUmfr.umfragen.Rows.Count == 1) { return(user.UserID == Convert.ToInt32(dsUmfr.umfragen.Rows[0]["r_UserID"])); } return(false); }
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; } }
private void RefreshUmfragenListe() { // Umfragen des eingeloggten Benutzers abrufen: // Daten vorbereiten SqlParameter pUserID = DataAccessUmfragen.Paramr_userID; pUserID.Value = SessionContainer.ReadFromSession(this).User.UserID; DataParameters parameters = new DataParameters(); parameters.Add(pUserID); DSUmfragen ds = m_daUmfragen.Select(parameters); // in der Checkboxliste darstellen m_chblUmfragenListe.DataSource = ds.umfragen; // den Titel der Umfrage neben der Checkbox anzeigen m_chblUmfragenListe.DataTextField = ds.umfragen.Columns["Titel"].ToString(); // die UmfrageID als Value mitgeben, um zum Löschen oder Bearbeiten wieder an den Datensatz zu kommen m_chblUmfragenListe.DataValueField = ds.umfragen.Columns["UmfrageID"].ToString(); m_chblUmfragenListe.DataBind(); // wenn keine Datensätze gefunden wurden, sollen die Umfragenliste und die // dazugehörigen Buttons nicht sichtbar sein m_tblUmfragenListe.Visible = (ds.umfragen.Rows.Count > 0); }
/// <summary> /// Stellt ein DataSet aus der Tabelle umfragen zusammen, das den mit selectParams festgelegten /// Suchkriterien entspricht /// </summary> /// <param name="selectParams">Suchkriterien</param> /// <returns>ein DataSet vom Typ DSUmfragen das die gesuchten Datensätze enthält</returns> public DSUmfragen Select(DataParameters selectParams) { m_adpUmfragen.SelectCommand.CommandText = SQLCommandBuilder.MakeSelectString(selectParams, "umfragen"); if (selectParams != null) { for(int i = 0; i < selectParams.Count; i++) { m_adpUmfragen.SelectCommand.Parameters.Add(selectParams[i]); } } DSUmfragen dsResult = new DSUmfragen(); m_adpUmfragen.Fill(dsResult, dsResult.umfragen.TableName); m_cmSelect.Parameters.Clear(); return dsResult; }
/// <summary> /// Trägt die Änderungen, die an dem DataSet vorgenommen wurden, in die Datenbank ein /// </summary> /// <param name="dsUpdate">ein (verändertes) DataSet vom Typ DSUmfragen</param> public void CommitChanges(DSUmfragen dsUpdate) { m_adpUmfragen.Update(dsUpdate, dsUpdate.umfragen.TableName); }