예제 #1
0
        public bool AddBewertung(Bewertung bewertung, Ernährungsplan ernährungsplan)
        {
            try
            {
                StaticDB.Connect();
                string insertBew = $"INSERT INTO EP_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 EP_Link_BaseBewertung (ID_EP_Base, ID_EP_Bewertung) VALUES ({ernährungsplan.ID}, {lastID})";
                StaticDB.RunSQL(insertLink);

                ernährungsplan.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 bool Delete(Ernährungsplan ernährungsplan)
 {
     try
     {
         foreach (var item in ernährungsplan.Bewertungen)
         {
             string command = $"DELETE FROM EP_Bewertung WHERE ID={item.ID}";
             StaticDB.RunSQL(command);
         }
         string com = $"DELETE FROM EP_Base WHERE ID={ernährungsplan.ID}";
         StaticDB.RunSQL(com);
         return(true);
     }
     catch (Exception ex)
     {
         _ = ex.Message;
         if (StaticDB.Connection != null)
         {
             if (StaticDB.Connection.State != ConnectionState.Closed)
             {
                 StaticDB.Connection.Close();
             }
         }
         return(false);
     }
 }
예제 #3
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);
            }
        }
예제 #4
0
 /// <summary>
 /// Herausfinden, welcher Plan bewertet werden soll
 /// </summary>
 void GetByID(int id)
 {
     if (type == typeof(Trainingsplan))
     {
         TPlan = AllVM.Datenbank.Trainingsplan.GetByID(id);
     }
     else if (type == typeof(Ernährungsplan))
     {
         EPlan = AllVM.Datenbank.Ernährungsplan.GetByID(id);
     }
 }
예제 #5
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);
            }
        }
예제 #6
0
        /// <summary>
        /// Löschen eines Beitrages
        /// </summary>
        private void Delete(object sender, EventArgs e)
        {
            Ernährungsplan plan = EPlaene.Find(s => s.ID.ToString() == (sender as MenuItem).ClassId);

            if (AllVM.Datenbank.Ernährungsplan.Delete(plan))
            {
                GetList();
                DependencyService.Get <IMessage>().ShortAlert("Erfolgreich gelöscht");
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Löschen");
            }
        }
예제 #7
0
        /// <summary>
        /// BindingContext der Liste anpassen und Bewertung berechnen
        /// </summary>
        void OnBindingContextChanged(System.Object sender, System.EventArgs e)
        {
            MenuItem menuItem = new MenuItem();

            base.OnBindingContextChanged();

            if (BindingContext == null)
            {
                return;
            }

            ViewCell       theViewCell = ((ViewCell)sender);
            Ernährungsplan item        = theViewCell.BindingContext as Ernährungsplan;

            theViewCell.ContextActions.Clear();

            if (item != null)
            {
                int    count_bew = 5;
                Grid   bewGrid   = ((theViewCell.View as Frame).Content as Grid).FindByName <Grid>("bewGrid");
                double bewertung = -1;
                if (item.DurchBewertung != -2)
                {
                    if (item.DurchBewertung == -1)
                    {
                        item.DurchBewertung = 0;
                    }

                    bewertung = Math.Round((double)item.DurchBewertung * 2, MidpointRounding.AwayFromZero) / 2;
                    int    count_filled = (int)Math.Floor(bewertung);
                    double count_half   = bewertung - count_filled;

                    if (count_half > 0)
                    {
                        count_half = 1;
                    }

                    for (int i = 0; i < count_bew; i++)
                    {
                        Image star = new Image()
                        {
                            Aspect        = Aspect.AspectFit,
                            HeightRequest = 20,
                            WidthRequest  = 20
                        };

                        if (i <= count_filled - 1)
                        {
                            star.Source = ImageSource.FromFile("Star_Filled");
                        }
                        else
                        {
                            if (count_half == 1)
                            {
                                star.Source = ImageSource.FromFile("Star_HalfFilled");
                                count_half  = 0;
                            }
                            else
                            {
                                star.Source = ImageSource.FromFile("Star_Unfilled");
                            }
                        }

                        Grid.SetColumn(star, i);
                        bewGrid.Children.Add(star);
                    }
                }

                if (item.Ersteller.Nutzername == AllVM.User.Nutzername)
                {
                    menuItem = new MenuItem()
                    {
                        Text          = "Löschen",
                        ClassId       = $"{item.ID}",
                        IsDestructive = true
                    };
                    menuItem.Clicked += Delete;
                    theViewCell.ContextActions.Add(menuItem);
                }
            }
        }
예제 #8
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);
            }
        }
예제 #9
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);
            }
        }