예제 #1
0
        /// <summary>
        /// Fügt eine Bewertung zu einem Trainingsplan in der Datenbank hinzu
        /// </summary>
        /// <param name="bewertung">Hinzuzufügende Bewertung (Typ BewertungTrainingsplan)</param>
        /// <param name="trainingsplan">Zur Bewertung zugehöriger Trainingsplan (Typ Trainingsplan)</param>
        /// <returns>Gibt bei erfolgreichem Ausführen true zurück und bei einem Fehler false</returns>
        public bool AddBewertung(Bewertung bewertung, Trainingsplan trainingsplan)
        {
            try
            {
                StaticDB.Connect();
                string insertBew = $"INSERT INTO TP_Bewertung ([User], Bewertung) VALUES ('{bewertung.Bewerter.Nutzername}', '{bewertung.Rating}');" +
                                   "SELECT CAST(SCOPE_IDENTITY() AS INT)";
                StaticDB.Connection.Open();
                SqlCommand command = new SqlCommand(insertBew, StaticDB.Connection);
                int        lastID  = (int)command.ExecuteScalar();
                StaticDB.Connection.Close();
                string insertLink = $"INSERT INTO TP_Link_BaseBewertung (ID_TP_Base, ID_TP_Bewertung) VALUES ({trainingsplan.ID}, {lastID})";
                StaticDB.RunSQL(insertLink);

                trainingsplan.Bewertungen.Add(bewertung);
                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #2
0
        /// <summary>
        /// Lädt eine Liste der Bewertungen zu einem Trainingsplan aus der Datenbank.
        /// </summary>
        /// <param name="ID">Nimmt die ID eines Trainingsplans entgegen (Integer)</param>
        /// <returns>Gibt eine Liste von Bewertungen zurück</returns>
        public List <Bewertung> GetBewertungen(int ID)
        {
            try
            {
                StaticDB.Connect();
                List <Bewertung> bewertungsList = new List <Bewertung>();
                string           com            = "SELECT bew.ID, bew.[User], Bewertung " +
                                                  "FROM TP_Base as base " +
                                                  "INNER JOIN TP_Link_BaseBewertung as link " +
                                                  "ON base.ID = link.ID_TP_Base " +
                                                  "INNER JOIN TP_Bewertung as bew " +
                                                  "ON bew.ID = link.ID_TP_Bewertung " +
                                                  $"WHERE base.ID = {ID}";

                StaticDB.Connection.Open();
                SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);

                var r = sqlCommand.ExecuteReader();
                while (r.Read())
                {
                    Bewertung bewertung = new Bewertung()
                    {
                        ID       = r.GetInt32(0),
                        Bewerter = new User()
                        {
                            Nutzername = r.GetString(1)
                        },
                        Rating = r.GetInt32(2)
                    };
                    bewertungsList.Add(bewertung);
                }
                StaticDB.Connection.Close();
                foreach (var item in bewertungsList)
                {
                    item.Bewerter = AllVM.Datenbank.User.GetByName(item.Bewerter.Nutzername);
                }
                return(bewertungsList);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #3
0
 /// <summary>
 /// Löscht eine Bewertung aus der Datenbank.
 /// </summary>
 /// <param name="bewertung">Zu löschende Bewertung (Typ BewertungTrainingsplan)</param>
 /// <returns>Gibt bei erfolgreichem Ausführen true zurück und bei einem Fehler false</returns>
 public bool DeleteBewertung(Bewertung bewertung)
 {
     try
     {
         string delBew = $"DELETE FROM TP_Bewertung WHERE ID={bewertung.ID}";
         StaticDB.RunSQL(delBew);
         return(true);
     }
     catch (Exception ex)
     {
         _ = ex.Message;
         if (StaticDB.Connection != null)
         {
             if (StaticDB.Connection.State != ConnectionState.Closed)
             {
                 StaticDB.Connection.Close();
             }
         }
         return(false);
     }
 }
예제 #4
0
        /// <summary>
        /// Die aktuelle Bewertung speichern
        /// </summary>
        private void Save(object sender, EventArgs e)
        {
            int  bewert  = 0;
            bool correct = false;

            foreach (Image item in bewGrid.Children)
            {
                if ((item.Source as FileImageSource).File == "Star_Filled")
                {
                    bewert++;
                }
            }

            Bewertung bewertung = new Bewertung()
            {
                Bewerter = AllVM.ConvertToUser(),
                Rating   = bewert
            };

            if (type == typeof(Trainingsplan))
            {
                correct = AllVM.Datenbank.Trainingsplan.AddBewertung(bewertung, TPlan);
            }
            else if (type == typeof(Ernährungsplan))
            {
                correct = AllVM.Datenbank.Ernährungsplan.AddBewertung(bewertung, EPlan);
            }

            if (correct)
            {
                OnBackButtonPressed();
                DependencyService.Get <IMessage>().ShortAlert("Erfolgreich bewertet");
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler bei Bewertung");
            }
        }