예제 #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
 public List <string> GetCategories()
 {
     try
     {
         StaticDB.Connect();
         List <string> categories = new List <string>();
         string        com        = "SELECT * FROM TP_Kategorien";
         StaticDB.Connection.Open();
         SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
         var        r          = sqlCommand.ExecuteReader();
         while (r.Read())
         {
             categories.Add(r.GetString(0));
         }
         StaticDB.Connection.Close();
         return(categories);
     }
     catch (Exception ex)
     {
         _ = ex.Message;
         if (StaticDB.Connection != null)
         {
             if (StaticDB.Connection.State != ConnectionState.Closed)
             {
                 StaticDB.Connection.Close();
             }
         }
         return(null);
     }
 }
예제 #3
0
        /// <summary>
        /// Anzahl der Follower ermitteln
        /// </summary>
        /// <param name="nutzername">Zu suchender Benutzer</param>
        /// <returns></returns>
        private int GetAnzahlFollower(string nutzername)
        {
            try
            {
                string com = $"SELECT COUNT(*) FROM User_Follows WHERE User_ID = '{nutzername}'";
                StaticDB.Connect();
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                object result = command.ExecuteScalar();
                StaticDB.Connection.Close();

                if (result != null)
                {
                    return((int)result);
                }
                else
                {
                    return(-1);
                }
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(-1);
            }
        }
예제 #4
0
 public List <string> GetUnits()
 {
     try
     {
         List <string> units = new List <string>();
         string        com   = "SELECT * FROM TP_Einheiten";
         StaticDB.Connect();
         StaticDB.Connection.Open();
         SqlCommand sql = new SqlCommand(com, StaticDB.Connection);
         var        r   = sql.ExecuteReader();
         while (r.Read())
         {
             units.Add(r.GetString(0));
         }
         StaticDB.Connection.Close();
         return(units);
     }
     catch (Exception ex)
     {
         _ = ex.Message;
         if (StaticDB.Connection != null)
         {
             if (StaticDB.Connection.State != ConnectionState.Closed)
             {
                 StaticDB.Connection.Close();
             }
         }
         return(null);
     }
 }
예제 #5
0
        internal string GetPasswort(string nutzername)
        {
            try
            {
                StaticDB.Connect();

                string com = $"SELECT Password FROM User_Password WHERE Nutzername = '{nutzername}'";

                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                object r = command.ExecuteScalar();
                StaticDB.Connection.Close();

                if (r != null)
                {
                    return(r.ToString());
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public Trainingsplan GetByID(int ID)
        {
            try
            {
                StaticDB.Connect();
                Trainingsplan trainingsplan = new Trainingsplan();
                string        com           = "SELECT TP_Base.ID, TP_Base.Titel, TP_Info.ErstelltAM, TP_Info.ErstelltVon, TP_Info.GeaendertAm, TP_Info.Kategorie " +
                                              "FROM TP_Base " +
                                              "INNER JOIN TP_Info " +
                                              "ON TP_Base.ID = TP_Info.ID " +
                                              $"WHERE TP_Info.ID = '{ID}'";

                StaticDB.Connection.Open();
                SqlCommand  sqlCommand = new SqlCommand(com, StaticDB.Connection);
                IDataReader r          = sqlCommand.ExecuteReader();
                while (r.Read())
                {
                    trainingsplan = new Trainingsplan()
                    {
                        ID         = r.GetInt32(0),
                        Titel      = r.GetString(1),
                        ErstelltAm = r.GetDateTime(2),
                        Ersteller  = new User()
                        {
                            Nutzername = r.GetString(3)
                        },
                        Kategorie = r.GetString(5),
                    };
                    if (!r.IsDBNull(4))
                    {
                        trainingsplan.GeAendertAm = r.GetDateTime(4);
                    }
                }

                StaticDB.Connection.Close();

                trainingsplan.Ersteller      = AllVM.Datenbank.User.GetByName(trainingsplan.Ersteller.Nutzername);
                trainingsplan.UebungList     = AllVM.Datenbank.Trainingsplan.GetUebungen(trainingsplan.ID);
                trainingsplan.Bewertungen    = AllVM.Datenbank.Trainingsplan.GetBewertungen(trainingsplan.ID);
                trainingsplan.DurchBewertung = AllVM.Datenbank.Trainingsplan.GetAvgBewertung(trainingsplan.ID);
                return(trainingsplan);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #7
0
        internal Ernährungsplan GetByID(int iD)
        {
            try
            {
                StaticDB.Connect();
                var    ePlan = new Ernährungsplan();
                string com   = "SELECT base.ID, base.Titel , info.ErstelltVon, info.ErstelltAm, info.GeaendertAm, info.Kategorie " +
                               "FROM EP_Base as base " +
                               "INNER JOIN EP_Info as info " +
                               "ON base.ID = info.ID " +
                               $"WHERE base.ID = '{iD}'";
                StaticDB.Connection.Open();
                SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                var        r          = sqlCommand.ExecuteReader();
                while (r.Read())
                {
                    ePlan = new Ernährungsplan()
                    {
                        ID        = r.GetInt32(0),
                        Titel     = r.GetString(1),
                        Ersteller = new User()
                        {
                            Nutzername = r.GetString(2)
                        },
                        ErstelltAm = r.GetDateTime(3),
                        Kategorie  = r.GetString(5)
                    };

                    if (!r.IsDBNull(4))
                    {
                        ePlan.GeAendertAm = r.GetDateTime(4);
                    }
                }
                StaticDB.Connection.Close();

                ePlan.Ersteller      = AllVM.Datenbank.User.GetByName(ePlan.Ersteller.Nutzername);
                ePlan.Bewertungen    = AllVM.Datenbank.Ernährungsplan.GetBewertungen(ePlan.ID);
                ePlan.MahlzeitenList = AllVM.Datenbank.Ernährungsplan.GetMahlzeiten(ePlan.ID);
                ePlan.DurchBewertung = AllVM.Datenbank.Ernährungsplan.GetAvgBewertung(ePlan.ID);

                return(ePlan);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #8
0
        /// <summary>
        /// Zusätzliche Informationen zu einem Benutzer aufgrund eines Nutzernames erhalten
        /// </summary>
        /// <param name="nutzername">Nutzername des zu suchenden Benutzers</param>
        /// <returns></returns>
        public User GetByName(string nutzername)
        {
            try
            {
                User user = null;
                StaticDB.Connect();

                string com = "SELECT base.Nutzername, info.ErstelltAm, info.Infotext, info.OnlyCustomName, info.CustomName, bild.Bild " +
                             "FROM User_Base AS base " +
                             "INNER JOIN User_Info AS info " +
                             "ON info.Nutzername = base.Nutzername " +
                             "LEFT JOIN User_Bild AS bild " +
                             "ON bild.Nutzername = base.Nutzername " +
                             $"WHERE base.Nutzername = '{nutzername}';";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    user = new User()
                    {
                        Nutzername     = r.GetString(0),
                        ErstelltAm     = r.GetDateTime(1),
                        InfoText       = r.GetString(2),
                        OnlyCustomName = StaticDB.ConvertByteToBool(r.GetByte(3)),
                        CustomName     = r.GetString(4)
                    };

                    if (!r.IsDBNull(5))
                    {
                        user.ProfilBild = (byte[])r[5];
                    }
                }

                StaticDB.Connection.Close();
                user.AnzahlFollower = GetAnzahlFollower(user.Nutzername);

                return(user);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #9
0
        public bool Edit(Ernährungsplan ernährungsplan)
        {
            try
            {
                StaticDB.Connect();
                string editEP_Base = $"UPDATE EP_Base SET Titel='{ernährungsplan.Titel}' WHERE ID={ernährungsplan.ID}";
                StaticDB.RunSQL(editEP_Base);
                string delLink = $"DELETE FROM EP_Link_BaseMahlzeiten WHERE ID_Base={ernährungsplan.ID}";
                StaticDB.RunSQL(delLink);
                foreach (var item in ernährungsplan.MahlzeitenList)
                {
                    string com = $"SELECT * FROM EP_Mahlzeiten WHERE Nahrungsmittel='{item.Nahrungsmittel}' AND Menge='{item.Menge.ToString().Replace(",", ".")}' AND Einheit='{item.Einheit}'";
                    if (StaticDB.CheckExistenz(com) == true)
                    {
                        SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                        StaticDB.Connection.Open();
                        int ID = (int)sqlCommand.ExecuteScalar();
                        StaticDB.Connection.Close();

                        com = $"INSERT INTO EP_Link_BaseMahlzeiten (ID_Base, ID_Mahlzeit) VALUES('{ernährungsplan.ID}', '{ID}')";
                        StaticDB.RunSQL(com);
                    }
                    else
                    {
                        com = $"INSERT INTO EP_Mahlzeiten (Nahrungsmittel, Menge, Einheit) VALUES ('{item.Nahrungsmittel}', '{item.Menge.ToString().Replace(",", ".")}', '{item.Einheit}');" +
                              $"SELECT CAST(SCOPE_IDENTITY() AS INT)";
                        StaticDB.Connection.Open();
                        SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                        int        ID         = (int)sqlCommand.ExecuteScalar();
                        StaticDB.Connection.Close();
                        com = $"INSERT INTO EP_Link_BaseMahlzeiten (ID_Base, ID_Mahlzeit) VALUES('{ernährungsplan.ID}', '{ID}')";
                        StaticDB.RunSQL(com);
                    }
                }
                string editEP_Info = $"UPDATE EP_Info SET GeaendertAm='{DateTime.Now}' WHERE ID={ernährungsplan.ID}";
                StaticDB.RunSQL(editEP_Info);

                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #10
0
        // in arbeit
        /// <summary>
        /// Ändert einen Trainingsplan in der Datenbank
        /// </summary>
        /// <param name="trainingsplan">Nimmt den bearbeiteten Trainingsplan entgegen (Typ Trainingsplan)</param>
        /// <returns>Gibt bei erfolgreichem Ausführen true zurück und bei einem Fehler false</returns>
        public bool Edit(Trainingsplan trainingsplan)
        {
            try
            {
                StaticDB.Connect();
                string editTP_Base = $"UPDATE TP_Base SET Titel = '{trainingsplan.Titel}' WHERE ID={trainingsplan.ID}";
                StaticDB.RunSQL(editTP_Base);
                string delLink = $"DELETE FROM TP_Link_BaseUebung WHERE ID_Base={trainingsplan.ID}";
                StaticDB.RunSQL(delLink);
                foreach (var item in trainingsplan.UebungList)
                {
                    string com = $"SELECT * FROM TP_Uebungen WHERE Name='{item.Name}' AND Gewicht='{item.Menge.ToString().Replace(",", ".")}' AND Repetition={item.Wiederholungen} AND Sets={item.Sätze}";
                    if (StaticDB.CheckExistenz(com) == true)
                    {
                        SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                        StaticDB.Connection.Open();
                        int ID = (int)sqlCommand.ExecuteScalar();
                        StaticDB.Connection.Close();

                        com = $"INSERT INTO TP_Link_BaseUebung (ID_Base, ID_Uebung) VALUES('{trainingsplan.ID}', '{ID}')";
                        StaticDB.RunSQL(com);
                    }
                    else
                    {
                        com = $"INSERT INTO TP_Uebungen (Name, Gewicht, Repetition, Sets) VALUES ('{item.Name}', '{item.Menge.ToString().Replace(",", ".")}', '{item.Wiederholungen}', '{item.Sätze}'); " +
                              "SELECT CAST(SCOPE_IDENTITY() AS INT)";
                        StaticDB.Connection.Open();
                        SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                        int        ID      = (int)command.ExecuteScalar();
                        StaticDB.Connection.Close();
                        com = $"INSERT INTO TP_Link_BaseUebung (ID_Base, ID_Uebung) VALUES('{trainingsplan.ID}', '{ID}')";
                        StaticDB.RunSQL(com);
                    }
                }
                string editTP_Info = $"UPDATE TP_Info SET GeaendertAm='{DateTime.Now}' WHERE ID={trainingsplan.ID}";
                StaticDB.RunSQL(editTP_Info);

                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #11
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);
            }
        }
예제 #12
0
        /// <summary>
        /// Likes und Nutzernamen zu einem Beitrag erhalten
        /// </summary>
        /// <param name="id">ID des Beitrages</param>
        /// <returns></returns>
        public List <Like> GetLikesWithNames(string id)
        {
            try
            {
                List <User> subs = AllVM.Datenbank.User.GetSubs(AllVM.User.Nutzername);
                List <Like> list = new List <Like>();
                StaticDB.Connect();

                string com = "SELECT [User] " +
                             "FROM Feed_Likes " +
                             $"WHERE Feed_ID = '{id}'";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    Like like = new Like()
                    {
                        User = new User()
                        {
                            Nutzername = r.GetString(0)
                        }
                    };
                    list.Add(like);
                }

                StaticDB.Connection.Close();

                foreach (var item in list)
                {
                    item.User  = AllVM.Datenbank.User.GetByName(item.User.Nutzername);
                    item.IsSub = subs.Exists(s => s.Nutzername == item.User.Nutzername);
                }

                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #13
0
        /// <summary>
        /// Liste der Follower zu einem Benutzer ausgeben
        /// </summary>
        /// <param name="profil">Benutzername</param>
        /// <returns></returns>
        internal List <Follower> GetFollows(string profil)
        {
            try
            {
                List <Follower> list = new List <Follower>();
                StaticDB.Connect();

                string com = "SELECT Follow_ID, GefolgtAm " +
                             "FROM User_Follows " +
                             $"WHERE User_ID = '{profil}';";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                int counter = 1;
                while (r.Read())
                {
                    Follower follower = new Follower()
                    {
                        Index = counter,
                        User  = new User()
                        {
                            Nutzername = r.GetString(0)
                        },
                        GefolgtAm = r.GetDateTime(1)
                    };
                    list.Add(follower);
                    counter += 1;
                }

                StaticDB.Connection.Close();
                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #14
0
        /// <summary>
        /// Lädt die zu einem Trainingsplan zugehörigen Übungen aus der Datenbank.
        /// </summary>
        /// <param name="ID">ID des Trainingsplans (Integer)</param>
        /// <returns>Liste der Übungen</returns>
        public List <Uebung> GetUebungen(int ID)
        {
            try
            {
                StaticDB.Connect();
                List <Uebung> uebungen   = new List <Uebung>();
                string        sqlCommand = "SELECT ueb.ID, ueb.Name, ueb.Gewicht, ueb.Repetition, ueb.Sets, ueb.Einheit " +
                                           "FROM TP_Base as base " +
                                           "INNER JOIN TP_Link_BaseUebung as link " +
                                           "ON base.ID = link.ID_Base " +
                                           "INNER JOIN TP_Uebungen as ueb " +
                                           "ON ueb.ID = link.ID_Uebung " +
                                           $"WHERE base.ID = {ID}";
                StaticDB.Connection.Open();
                SqlCommand  command = new SqlCommand(sqlCommand, StaticDB.Connection);
                IDataReader r       = command.ExecuteReader();
                while (r.Read())
                {
                    Uebung uebung = new Uebung()
                    {
                        ID             = r.GetInt32(0),
                        Name           = r.GetString(1),
                        Menge          = r.GetDecimal(2),
                        Wiederholungen = r.GetInt32(3),
                        Sätze          = r.GetInt32(4),
                        Einheit        = r.GetString(5)
                    };
                    uebungen.Add(uebung);
                }

                StaticDB.Connection.Close();
                return(uebungen);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #15
0
        /// <summary>
        /// Profilbild hochladen
        /// </summary>
        /// <param name="user">Benutzer</param>
        /// <param name="bild">Profilbild</param>
        /// <returns></returns>
        internal bool UploadProfilBild(User user, byte[] bild)
        {
            try
            {
                StaticDB.Connect();
                string com      = $"SELECT * FROM User_Bild WHERE Nutzername = '{user.Nutzername}'";
                bool?  existenz = StaticDB.CheckExistenz(com);

                if (existenz == null)
                {
                    return(false);
                }
                else
                {
                    if (existenz == true)
                    {
                        com = $"UPDATE User_Bild SET Bild = @bildBytes WHERE Nutzername = '{user.Nutzername}'";
                    }
                    else if (existenz == false)
                    {
                        com = $"INSERT INTO User_Bild VALUES('{user.Nutzername}', @bildBytes)";
                    }

                    SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                    StaticDB.Connection.Open();
                    command.Parameters.Add("@bildBytes", System.Data.SqlDbType.VarBinary).Value = bild;
                    command.ExecuteNonQuery();
                    StaticDB.Connection.Close();
                    return(true);
                }
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #16
0
 public List <Mahlzeiten> GetMahlzeiten(int ID)
 {
     try
     {
         StaticDB.Connect();
         List <Mahlzeiten> mahlzeitenList = new List <Mahlzeiten>();
         string            com            = "select mahl.ID, mahl.Nahrungsmittel, mahl.Menge, mahl.Einheit " +
                                            "FROM EP_Base as base " +
                                            "INNER JOIN EP_Link_BaseMahlzeiten as link " +
                                            "ON base.ID = link.ID_Base " +
                                            "INNER JOIN EP_Mahlzeiten as mahl " +
                                            "ON link.ID_Mahlzeit = mahl.ID " +
                                            $"WHERE base.ID = {ID}";
         StaticDB.Connection.Open();
         SqlCommand sqlcommand = new SqlCommand(com, StaticDB.Connection);
         var        r          = sqlcommand.ExecuteReader();
         while (r.Read())
         {
             Mahlzeiten mahlzeit = new Mahlzeiten()
             {
                 ID             = r.GetInt32(0),
                 Nahrungsmittel = r.GetString(1),
                 Menge          = r.GetDecimal(2),
                 Einheit        = r.GetString(3)
             };
             mahlzeitenList.Add(mahlzeit);
         }
         StaticDB.Connection.Close();
         return(mahlzeitenList);
     }
     catch (Exception ex)
     {
         _ = ex.Message;
         if (StaticDB.Connection != null)
         {
             if (StaticDB.Connection.State != ConnectionState.Closed)
             {
                 StaticDB.Connection.Close();
             }
         }
         return(null);
     }
 }
예제 #17
0
        /// <summary>
        /// Aktualisieren der neuen Werte für einen Benutzer
        /// </summary>
        /// <param name="user">zu aktualisierender Benutzer</param>
        /// <returns></returns>
        internal bool Update(User user)
        {
            string com = $"UPDATE User_Info SET " +
                         $"GeaendertAm = '{DateTime.Now:yyyy-MM-dd HH:mm:ss}', " +
                         $"Infotext = '{user.InfoText}'," +
                         $"OnlyCustomName = '{StaticDB.ConvertBoolToByte(user.OnlyCustomName)}'," +
                         $"CustomName = '{user.CustomName}' " +
                         $"WHERE Nutzername = '{user.Nutzername}';";

            bool result = StaticDB.RunSQL(com);

            if (result == false)
            {
                return(result);
            }

            try
            {
                com = $"UPDATE User_Bild SET " +
                      $"Bild = @bild " +
                      $"WHERE Nutzername = '{user.Nutzername}';";

                StaticDB.Connect();
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                command.Parameters.Add("@bild", System.Data.SqlDbType.VarBinary).Value = user.ProfilBild;
                command.ExecuteNonQuery();
                StaticDB.Connection.Close();
                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #18
0
        /// <summary>
        /// Einfügen eines Status
        /// </summary>
        /// <param name="status">Der einzufügende Status</param>
        /// <returns></returns>
        public bool Insert(Status status)
        {
            string com    = $"INSERT INTO Feed_Base VALUES('{status.Beschreibung}');";
            bool   result = StaticDB.RunSQL(com);

            if (result == false)
            {
                return(false);
            }

            int id = StaticDB.GetID($"SELECT ID FROM Feed_Base WHERE Beschreibung = '{status.Beschreibung}'");

            com    = $"INSERT INTO Feed_Info VALUES('{id}', '{status.ErstelltAm:yyyy-MM-dd HH:mm:ss}', '{status.ErstelltVon.Nutzername}')";
            result = StaticDB.RunSQL(com);
            if (result == false)
            {
                return(false);
            }


            if (status.Foto != null)
            {
                com = $"INSERT INTO Feed_Fotos VALUES('{id}', @bild);";

                StaticDB.Connect();
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                command.Parameters.Add("@bild", System.Data.SqlDbType.VarBinary).Value = status.Foto;
                StaticDB.Connection.Open();
                int count = command.ExecuteNonQuery();
                StaticDB.Connection.Close();

                if (count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(true);
        }
예제 #19
0
        internal List <User> GetSubs(string nutzername)
        {
            try
            {
                List <User> list = new List <User>();
                StaticDB.Connect();

                string com = "SELECT User_ID " +
                             "FROM User_Follows " +
                             $"WHERE Follow_ID = '{nutzername}';";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                int counter = 1;
                while (r.Read())
                {
                    User user = new User()
                    {
                        Nutzername = r.GetString(0)
                    };
                    list.Add(user);
                    counter += 1;
                }

                StaticDB.Connection.Close();
                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #20
0
        /// <summary>
        /// Alle Benutzer als Liste ausgeben
        /// </summary>
        /// <returns></returns>
        internal List <User> GetList()
        {
            try
            {
                List <User> list = new List <User>();
                StaticDB.Connect();

                string com = "SELECT base.Nutzername, info.CustomName " +
                             "FROM User_Base AS base " +
                             "INNER JOIN User_Info AS info " +
                             "ON info.Nutzername =  base.Nutzername;";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    User user = new User()
                    {
                        Nutzername = r.GetString(0),
                        CustomName = r.GetString(1)
                    };
                    list.Add(user);
                }

                StaticDB.Connection.Close();
                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #21
0
        /// <summary>
        /// Aktuellen Like-Anzahl zu einem Beitrag ausgeben
        /// </summary>
        /// <param name="id">ID des Beitrages</param>
        /// <returns></returns>
        public int GetLikes(int id)
        {
            try
            {
                int count = 0;
                StaticDB.Connect();

                string com = "SELECT COUNT(*)" +
                             "FROM Feed_Likes " +
                             $"WHERE Feed_ID = '{id}'";

                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                object r = command.ExecuteScalar();

                if (r != null)
                {
                    count = int.Parse(r.ToString());
                }
                else
                {
                    count = -1;
                }

                StaticDB.Connection.Close();
                return(count);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(-1);
            }
        }
예제 #22
0
        public decimal GetAvgBewertung(int ID)
        {
            try
            {
                StaticDB.Connect();
                string durcchBew = "SELECT CONVERT(decimal(3,2),AVG(bew.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}";
                SqlCommand command = new SqlCommand(durcchBew, StaticDB.Connection);
                StaticDB.Connection.Open();
                var x = command.ExecuteScalar();
                StaticDB.Connection.Close();

                if (x != null && x.GetType() != typeof(System.DBNull))
                {
                    return(decimal.Parse(x.ToString()));
                }
                else
                {
                    return(-1);
                }
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(-2);
            }
        }
예제 #23
0
        /// <summary>
        /// Favorisierte Pläne (Training und Ernährung) aus der Datenbank ermitteln
        /// </summary>
        /// <returns></returns>
        internal List <FavoPlan> GetFavoPlans()
        {
            try
            {
                List <FavoPlan> list = new List <FavoPlan>();
                StaticDB.Connect();

                string com = $"SELECT Plan_ID, Typ FROM User_Favo WHERE Nutzername = '{AllVM.User.Nutzername}'";

                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    FavoPlan favo = new FavoPlan()
                    {
                        ID  = r.GetInt32(0),
                        Typ = r.GetString(1)
                    };
                    list.Add(favo);
                }

                StaticDB.Connection.Close();
                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #24
0
        /// <summary>
        /// Liest die Trainingspläne für einen Nutzer aus der Datenbank aus.
        /// </summary>
        /// <param name="Nutzername">Nutzername von dem Trainingspläne geladen werden sollen (string)</param>
        /// <returns>Liste von Trainingsplänen</returns>
        public List <Trainingsplan> GetList(string Nutzername = null)
        {
            try
            {
                string               com             = null;
                Trainingsplan        trainingsplan   = null;
                List <Trainingsplan> trainingsplaene = new List <Trainingsplan>();
                StaticDB.Connect();

                if (string.IsNullOrWhiteSpace(Nutzername))
                {
                    com = "SELECT TP_Base.ID, TP_Base.Titel, TP_Info.ErstelltAM, TP_Info.ErstelltVon, TP_Info.GeaendertAm, TP_Info.Kategorie " +
                          "FROM TP_Base " +
                          "INNER JOIN TP_Info " +
                          "ON TP_Base.ID = TP_Info.ID ";
                }
                else
                {
                    com = "SELECT TP_Base.ID, TP_Base.Titel, TP_Info.ErstelltAM, TP_Info.ErstelltVon, TP_Info.GeaendertAm, TP_Info.Kategorie " +
                          "FROM TP_Base " +
                          "INNER JOIN TP_Info " +
                          "ON TP_Base.ID = TP_Info.ID " +
                          $"WHERE TP_Info.ErstelltVon = '{Nutzername}'";
                }

                SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                IDataReader r = sqlCommand.ExecuteReader();
                while (r.Read())
                {
                    trainingsplan = new Trainingsplan()
                    {
                        ID         = r.GetInt32(0),
                        Titel      = r.GetString(1),
                        ErstelltAm = r.GetDateTime(2),
                        Ersteller  = new User()
                        {
                            Nutzername = r.GetString(3)
                        },
                        Kategorie = r.GetString(5),
                    };

                    if (!r.IsDBNull(4))
                    {
                        trainingsplan.GeAendertAm = r.GetDateTime(4);
                    }

                    trainingsplaene.Add(trainingsplan);
                }
                StaticDB.Connection.Close();

                foreach (var item in trainingsplaene)
                {
                    item.Ersteller      = AllVM.Datenbank.User.GetByName(item.Ersteller.Nutzername);
                    item.UebungList     = AllVM.Datenbank.Trainingsplan.GetUebungen(item.ID);
                    item.Bewertungen    = AllVM.Datenbank.Trainingsplan.GetBewertungen(item.ID);
                    item.DurchBewertung = AllVM.Datenbank.Trainingsplan.GetAvgBewertung(item.ID);
                }
                return(trainingsplaene);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #25
0
        /// <summary>
        /// Löschen eines Feed-Beitrages
        /// </summary>
        /// <param name="news">Der zulöschende Beitrag</param>
        /// <returns></returns>
        internal bool Delete(News news)
        {
            string com    = null;
            bool   result = false;

            List <Like> listLikes = GetLikesWithNames(news.ID.ToString());

            if (news.IsFoto)
            {
                com    = $"DELETE FROM Feed_Fotos WHERE ID = '{news.ID}'";
                result = StaticDB.RunSQL(com);

                if (!result)
                {
                    return(false);
                }
            }

            com    = $"DELETE FROM Feed_Likes WHERE Feed_ID = '{news.ID}'";
            result = StaticDB.RunSQL(com);

            if (!result)
            {
                if (news.IsFoto)
                {
                    com = $"INSERT INTO Feed_Fotos VALUES('{news.ID}', @bild);";
                    StaticDB.Connect();
                    SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                    command.Parameters.Add("@bild", System.Data.SqlDbType.VarBinary).Value = news.Foto;
                    StaticDB.Connection.Open();
                    int count = command.ExecuteNonQuery();
                    StaticDB.Connection.Close();
                }
                return(false);
            }

            com    = $"DELETE FROM Feed_Info WHERE ID = '{news.ID}'";
            result = StaticDB.RunSQL(com);

            if (!result)
            {
                foreach (var item in listLikes)
                {
                    com = $"INSERT INTO Feed_Likes VALUES('{news.ID}', '{item.User.Nutzername}')";
                    StaticDB.RunSQL(com);
                }

                if (news.IsFoto)
                {
                    com = $"INSERT INTO Feed_Fotos VALUES('{news.ID}', @bild);";
                    StaticDB.Connect();
                    SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                    command.Parameters.Add("@bild", System.Data.SqlDbType.VarBinary).Value = news.Foto;
                    StaticDB.Connection.Open();
                    int count = command.ExecuteNonQuery();
                    StaticDB.Connection.Close();
                }
                return(false);
            }

            com    = $"DELETE FROM Feed_Base WHERE ID = '{news.ID}'";
            result = StaticDB.RunSQL(com);

            if (!result)
            {
                com    = $"INSERT INTO Feed_Info VALUES('{news.ID}', '{news.ErstelltAm:yyyy-MM-dd HH:mm:ss}', '{news.Ersteller.Nutzername}')";
                result = StaticDB.RunSQL(com);

                if (news.IsFoto)
                {
                    com = $"INSERT INTO Feed_Fotos VALUES('{news.ID}', @bild);";
                    StaticDB.Connect();
                    SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                    command.Parameters.Add("@bild", System.Data.SqlDbType.VarBinary).Value = news.Foto;
                    StaticDB.Connection.Open();
                    int count = command.ExecuteNonQuery();
                    StaticDB.Connection.Close();
                }
                return(false);
            }

            return(true);
        }
예제 #26
0
        public bool AddErnährungsplan(Ernährungsplan ernährungsplan)
        {
            try
            {
                StaticDB.Connect();
                StaticDB.Connection.Open();
                string     com        = $"INSERT INTO EP_Base (Titel) VALUES ('{ernährungsplan.Titel}'); SELECT CAST(SCOPE_IDENTITY() AS INT)";
                SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                int        ID         = (int)sqlCommand.ExecuteScalar();
                StaticDB.Connection.Close();

                if (ernährungsplan.GeAendertAm != default)
                {
                    com = $"INSERT INTO EP_Info (ID, ErstelltAm, ErstelltVon, GeaendertAm, Kategorie) VALUES ({ID}, '{ernährungsplan.ErstelltAm:yyyy-dd-MM HH:mm:ss}', '{ernährungsplan.Ersteller.Nutzername}', '{ernährungsplan.GeAendertAm:yyyy-dd-MM HH:mm:ss}', '{ernährungsplan.Kategorie}');";
                }
                else
                {
                    com = $"INSERT INTO EP_Info (ID, ErstelltAm, ErstelltVon, Kategorie) VALUES ({ID}, '{ernährungsplan.ErstelltAm:yyyy-dd-MM HH:mm:ss}', '{ernährungsplan.Ersteller.Nutzername}', '{ernährungsplan.Kategorie}');";
                }

                bool result = StaticDB.RunSQL(com);
                if (result == false)
                {
                    com = $"DELETE FROM EP_Base WHERE ID = '{ID}'";
                    StaticDB.RunSQL(com);
                    return(false);
                }

                foreach (var mahlzeit in ernährungsplan.MahlzeitenList)
                {
                    string checkEx = $"SELECT * FROM EP_Mahlzeiten WHERE Nahrungsmittel='{mahlzeit.Nahrungsmittel}' AND Menge={mahlzeit.Menge.ToString().Replace(",", ".")} AND Einheit='{mahlzeit.Einheit}'";
                    if (StaticDB.CheckExistenz(checkEx) == true)
                    {
                        int    mahlID    = StaticDB.GetID(checkEx);
                        string comEpLink = $"INSERT INTO EP_Link_BaseMahlzeiten (ID_Base, ID_Mahlzeit) VALUES({ID}, {mahlID})";
                        StaticDB.RunSQL(comEpLink);
                    }
                    else
                    {
                        com = $"INSERT INTO EP_Mahlzeiten (Nahrungsmittel, Menge, Einheit) VALUES ('{mahlzeit.Nahrungsmittel}', {mahlzeit.Menge.ToString().Replace(",", ".")}, '{mahlzeit.Einheit}'); " +
                              "SELECT CAST(SCOPE_IDENTITY() AS INT)";
                        SqlCommand insertMahl = new SqlCommand(com, StaticDB.Connection);
                        StaticDB.Connection.Open();
                        int lastMahlID = (int)insertMahl.ExecuteScalar();
                        StaticDB.Connection.Close();
                        string comTpLink = $"INSERT INTO EP_Link_BaseMahlzeiten (ID_Base, ID_Mahlzeit) VALUES({ID}, {lastMahlID})";
                        StaticDB.RunSQL(comTpLink);
                    }
                }
                StaticDB.Connection.Close();
                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #27
0
        public List <Ernährungsplan> GetList(string Nutzername = null)
        {
            try
            {
                StaticDB.Connect();
                string com = null;
                List <Ernährungsplan> ernährungsplaene = new List <Ernährungsplan>();

                if (string.IsNullOrWhiteSpace(Nutzername))
                {
                    com = "SELECT base.ID, base.Titel , info.ErstelltVon, info.ErstelltAm, info.GeaendertAm, info.Kategorie " +
                          "FROM EP_Base as base " +
                          "INNER JOIN EP_Info as info " +
                          "ON base.ID = info.ID ";
                }
                else
                {
                    com = "SELECT base.ID, base.Titel , info.ErstelltVon, info.ErstelltAm, info.GeaendertAm, info.Kategorie " +
                          "FROM EP_Base as base " +
                          "INNER JOIN EP_Info as info " +
                          "ON base.ID = info.ID " +
                          $"WHERE info.ErstelltVon = '{Nutzername}'";
                }

                StaticDB.Connection.Open();
                SqlCommand sqlCommand = new SqlCommand(com, StaticDB.Connection);
                var        r          = sqlCommand.ExecuteReader();
                while (r.Read())
                {
                    Ernährungsplan ernährungsplan = new Ernährungsplan()
                    {
                        ID        = r.GetInt32(0),
                        Titel     = r.GetString(1),
                        Ersteller = new User()
                        {
                            Nutzername = r.GetString(2)
                        },
                        ErstelltAm = r.GetDateTime(3),
                        Kategorie  = r.GetString(5),
                    };
                    ernährungsplaene.Add(ernährungsplan);
                    if (!r.IsDBNull(4))
                    {
                        ernährungsplan.GeAendertAm = r.GetDateTime(4);
                    }
                }
                StaticDB.Connection.Close();
                foreach (var item in ernährungsplaene)
                {
                    item.Ersteller      = AllVM.Datenbank.User.GetByName(item.Ersteller.Nutzername);
                    item.Bewertungen    = AllVM.Datenbank.Ernährungsplan.GetBewertungen(item.ID);
                    item.MahlzeitenList = AllVM.Datenbank.Ernährungsplan.GetMahlzeiten(item.ID);
                    item.DurchBewertung = AllVM.Datenbank.Ernährungsplan.GetAvgBewertung(item.ID);
                }
                return(ernährungsplaene);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #28
0
        /// <summary>
        /// Fügt einen Trainingsplan zu der Datenbank hinzu.
        /// </summary>
        /// <param name="trainingsplan">Objekt vom Typ Trainingsplan</param>
        /// <returns>Gibt bei erfolgreichem Ausführen true zurück und bei einem Fehler false</returns>
        public bool AddTrainingsplan(Trainingsplan trainingsplan)
        {
            try
            {
                StaticDB.Connect();
                string com = $"INSERT INTO TP_Base (Titel) values ('{trainingsplan.Titel}'); " +
                             "SELECT CAST(SCOPE_IDENTITY() AS INT)";

                SqlCommand command = new SqlCommand(com, StaticDB.Connection);

                StaticDB.Connection.Open();

                int lastID = (int)command.ExecuteScalar();
                StaticDB.Connection.Close();

                if (trainingsplan.GeAendertAm != default)
                {
                    com = $"INSERT INTO TP_Info (ID, ErstelltAm, ErstelltVon, GeaendertAm, Kategorie) VALUES ({lastID}, '{trainingsplan.ErstelltAm:yyyy-dd-MM HH:mm:ss}', '{trainingsplan.Ersteller.Nutzername}', '{trainingsplan.GeAendertAm:yyyy-dd-MM HH:mm:ss}', '{trainingsplan.Kategorie}');";
                }
                else
                {
                    com = $"INSERT INTO TP_Info (ID, ErstelltAm, ErstelltVon, Kategorie) VALUES ({lastID}, '{trainingsplan.ErstelltAm:yyyy-dd-MM HH:mm:ss}', '{trainingsplan.Ersteller.Nutzername}', '{trainingsplan.Kategorie}');";
                }

                bool result = StaticDB.RunSQL(com);
                if (result == false)
                {
                    com = $"DELETE FROM TP_Base WHERE ID = '{lastID}'";
                    StaticDB.RunSQL(com);
                    return(false);
                }

                foreach (var uebung in trainingsplan.UebungList)
                {
                    string checkEx = $"SELECT * FROM TP_Uebungen WHERE Name='{uebung.Name}' AND Gewicht={uebung.Menge.ToString().Replace(",", ".")} AND Repetition={uebung.Wiederholungen} AND Sets={uebung.Sätze}";
                    if (StaticDB.CheckExistenz(checkEx) == true)
                    {
                        int    uebID     = StaticDB.GetID(checkEx);
                        string comTpLink = $"INSERT INTO TP_Link_BaseUebung (ID_Base, ID_Uebung) VALUES({lastID}, {uebID})";
                        StaticDB.RunSQL(comTpLink);
                    }
                    else
                    {
                        com = $"INSERT INTO TP_Uebungen (Name, Gewicht, Repetition, Sets, Einheit) VALUES ('{uebung.Name}', {uebung.Menge.ToString().Replace(",", ".")}, {uebung.Wiederholungen}, {uebung.Sätze}, '{uebung.Einheit}'); " +
                              "SELECT CAST(SCOPE_IDENTITY() AS INT)";
                        SqlCommand insertUeb = new SqlCommand(com, StaticDB.Connection);
                        StaticDB.Connection.Open();
                        int lastUebID = (int)insertUeb.ExecuteScalar();
                        StaticDB.Connection.Close();
                        string comTpLink = $"INSERT INTO TP_Link_BaseUebung (ID_Base, ID_Uebung) VALUES({lastID}, {lastUebID})";
                        StaticDB.RunSQL(comTpLink);
                    }
                }
                StaticDB.Connection.Close();
                return(true);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #29
0
        /// <summary>
        /// Feed-Beiträge zu einem bestimmten Nutzer ausgeben
        /// </summary>
        /// <param name="user">Zu suchender Benutzer</param>
        /// <returns></returns>
        public List <News> GetByUser(User user)
        {
            try
            {
                List <News> list = new List <News>();
                StaticDB.Connect();

                string com = "SELECT base.ID, base.Beschreibung, info.ErstelltAm, info.ErstelltVon, fotos.Bild, COUNT(likes.[User]) " +
                             "FROM Feed_Base AS base " +
                             "INNER JOIN Feed_Info AS info " +
                             "ON info.ID = base.ID " +
                             "LEFT JOIN Feed_Fotos AS fotos " +
                             "ON fotos.ID = info.ID " +
                             "LEFT JOIN Feed_Likes as likes " +
                             "ON likes.Feed_ID = base.ID " +
                             $"WHERE info.ErstelltVon = '{user.Nutzername}' " +
                             "GROUP BY base.ID, base.Beschreibung, info.ErstelltAm, info.ErstelltVon, fotos.Bild";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    News news = new News()
                    {
                        ID           = r.GetInt32(0),
                        Beschreibung = r.GetString(1),
                        ErstelltAm   = r.GetDateTime(2),
                        Ersteller    = new User()
                        {
                            Nutzername = r.GetString(3)
                        },
                        Likes = r.GetInt32(5)
                    };

                    if (!r.IsDBNull(4))
                    {
                        news.Foto = (byte[])r[4];
                    }

                    list.Add(news);
                }

                StaticDB.Connection.Close();

                foreach (var item in list)
                {
                    item.Liked = CheckIfLiked(item.ID);
                }

                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }
예제 #30
0
        /// <summary>
        /// Ausgabe der Feed-Einträge nach einem bestimmten Nutzer und optional in einem bestimmten Zeitraum
        /// </summary>
        /// <param name="user">Benutzer</param>
        /// <param name="vonDatum">Ab wann soll selektiert werden</param>
        /// <param name="bisDatum">Bis wann soll selektiert werden</param>
        /// <returns></returns>
        public List <News> Get(User user, DateTime vonDatum = default, DateTime bisDatum = default)
        {
            try
            {
                if (bisDatum == default)
                {
                    bisDatum = DateTime.Now;
                }

                List <News> list = new List <News>();
                StaticDB.Connect();

                string com = $"SELECT DISTINCT base.ID, base.Beschreibung, info.ErstelltAm, info.ErstelltVon, fotos.Bild " +
                             $"FROM Feed_Base AS base " +
                             $"INNER JOIN Feed_Info AS info " +
                             $"ON info.ID = base.ID " +
                             $"INNER JOIN User_Follows AS follows " +
                             $"ON follows.Follow_ID = '{user.Nutzername}' " +
                             $"LEFT JOIN Feed_Fotos AS fotos " +
                             $"ON fotos.ID = info.ID " +
                             $"WHERE(info.ErstelltVon = follows.User_ID OR info.ErstelltVon = '{user.Nutzername}') " +
                             $"AND info.ErstelltAm >= '{vonDatum:yyyy-MM-dd}' " +
                             $"AND info.ErstelltAm <= '{bisDatum:yyyy-MM-dd HH:mm:ss}';";

                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                var r = command.ExecuteReader();

                while (r.Read())
                {
                    News news = new News()
                    {
                        ID           = r.GetInt32(0),
                        Beschreibung = r.GetString(1),
                        ErstelltAm   = r.GetDateTime(2),
                        Ersteller    = new User()
                        {
                            Nutzername = r.GetString(3)
                        },
                    };

                    if (!r.IsDBNull(4))
                    {
                        news.Foto = (byte[])r[4];
                    }

                    list.Add(news);
                }

                StaticDB.Connection.Close();

                foreach (var item in list)
                {
                    item.Liked     = CheckIfLiked(item.ID);
                    item.Likes     = GetLikes(item.ID);
                    item.Ersteller = AllVM.Datenbank.User.GetByName(item.Ersteller.Nutzername);
                }

                return(list);
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(null);
            }
        }