/// <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;
            }
        }
Пример #5
0
        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);
 }