Beispiel #1
0
 public static List <Aineet> GetReseptiAineet(string reseptinimi)
 {
     try
     {
         List <Aineet> reseptiaineet = new List <Aineet>();
         string        cs            = GetMysqlConnectionString();
         string        sql           = "select AINEET.nimi, OHJEET.maara, OHJEET.mittayksikko from OHJEET, AINEET, RESEPTIT where OHJEET.Resepti_ID = RESEPTIT.Resepti_ID and OHJEET.Aine_ID = AINEET.Aine_ID and RESEPTIT.nimi = '" + reseptinimi + "'";
         using (MySqlConnection conn = new MySqlConnection(cs))
         {
             conn.Open();
             MySqlCommand cmd = new MySqlCommand(sql, conn);
             using (MySqlDataReader rdr = cmd.ExecuteReader())
             {
                 while (rdr.Read())
                 {
                     Aineet a = new Aineet();
                     a.Nimi         = rdr.GetString(0);
                     a.Maara        = rdr.GetFloat(1);
                     a.Mittayksikko = rdr.GetString(2);
                     reseptiaineet.Add(a);
                 }
             }
         }
         return(reseptiaineet);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #2
0
        public static bool LisaaAineita(Aineet aine)                                                                         // Lisätään uusi aine tietokantaan
        {
            System.IFormatProvider cultureUS = new System.Globalization.CultureInfo("en-US");                                // Tätä tarvitaan pilkun muuttamiseksi pisteeksi
            string  test  = aine.Maara.ToString(new CultureInfo("en-US"));                                                   // SQL ei ota vastaan pilkkuerotinta joten se täytyy muuttaa pisteeksi.
            decimal testi = Convert.ToDecimal(test);                                                                         // Muutetaan tuhaterotinta

            test = testi.ToString(new CultureInfo("en-US"));                                                                 // Vaihdetaan pilkku pisteeksi CultureInfon avulla
            string cs  = GetMysqlConnectionString();
            string sql = string.Format("INSERT INTO AINEET (nimi, maara, parastaennen, mittayksikko) VALUES (@0,@1,@2,@3)"); //SQL-injektion esto @-merkeillä

            using (MySqlConnection conn = new MySqlConnection(cs))
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@0", aine.Nimi); //SQL-injektion esto @-merkeillä
                cmd.Parameters.AddWithValue("@1", test);
                cmd.Parameters.AddWithValue("@2", aine.ParastaEnnen);
                cmd.Parameters.AddWithValue("@3", aine.Mittayksikko);

                int lkm = cmd.ExecuteNonQuery();
                if (lkm == 1)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Beispiel #3
0
 public static List <Aineet> GetOstoslista()
 {
     try
     {
         List <Aineet> aineet = new List <Aineet>();
         string        cs     = GetMysqlConnectionString();
         string        sql    = "SELECT Aine_ID, Nimi, Maara, Yksikko FROM OSTOSLISTA";
         using (MySqlConnection conn = new MySqlConnection(cs))
         {
             conn.Open();
             MySqlCommand cmd = new MySqlCommand(sql, conn);
             using (MySqlDataReader rdr = cmd.ExecuteReader())
             {
                 while (rdr.Read())
                 {
                     Aineet a = new Aineet();
                     a.AineID       = rdr.GetInt32(0);
                     a.Nimi         = rdr.GetString(1);
                     a.Maara        = rdr.GetFloat(2);
                     a.Mittayksikko = rdr.GetString(3);
                     aineet.Add(a);
                 }
             }
         }
         return(aineet);
     }
     catch
     {
         throw;
     }
 }
Beispiel #4
0
 public static List <Aineet> GetPuutteet(string reseptinimi)   //listaa reseptin ja varastossa olevien aineiden väliset erot jos niitä on
 {
     try
     {
         List <Aineet> puutteet = new List <Aineet>();
         string        cs       = GetMysqlConnectionString();
         string        sql      = "select AINEET.nimi, (OHJEET.Maara - AINEET.maara) AS erotus, AINEET.mittayksikko from OHJEET, AINEET, RESEPTIT where OHJEET.Resepti_ID = RESEPTIT.Resepti_ID and OHJEET.Aine_ID = AINEET.Aine_ID and RESEPTIT.nimi = '" + reseptinimi + "' and  AINEET.maara < OHJEET.Maara;";
         using (MySqlConnection conn = new MySqlConnection(cs))
         {
             conn.Open();
             MySqlCommand cmd = new MySqlCommand(sql, conn);
             using (MySqlDataReader rdr = cmd.ExecuteReader())
             {
                 while (rdr.Read())
                 {
                     Aineet a = new Aineet();
                     a.Nimi         = rdr.GetString(0);
                     a.Maara        = rdr.GetFloat(1);
                     a.Mittayksikko = rdr.GetString(2);
                     puutteet.Add(a);
                 }
             }
         }
         return(puutteet);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #5
0
        public static bool LisaaResepti(Reseptit reseptit, List <Aineet> L)
        {
            bool   b   = false;
            bool   c   = false;
            string cs  = GetMysqlConnectionString();
            string sql = string.Format("INSERT INTO RESEPTIT (Nimi, Haaste, Valmistusaika, Ohje) VALUES (@0,@1,@2,@3)");

            using (MySqlConnection conn = new MySqlConnection(cs))
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@0", reseptit.Nimi); //SQL-injektion esto
                cmd.Parameters.AddWithValue("@1", reseptit.Haaste);
                cmd.Parameters.AddWithValue("@2", reseptit.Valmistusaika);
                cmd.Parameters.AddWithValue("@3", reseptit.Ohje);
                int lkm = cmd.ExecuteNonQuery();
                if (lkm == 1)
                {
                    b = true;
                }
                else
                {
                    b = false;
                }
            }
            Aineet a = new Aineet();

            foreach (var item in L)
            {
                a = (Aineet)item;
                string mysql = string.Format("INSERT INTO OHJEET (Resepti_ID, Aine_ID, maara, mittayksikko) VALUES ((Select Resepti_ID from RESEPTIT where nimi = @0),(Select Aine_ID from AINEET where nimi = @1), @2,(Select mittayksikko from AINEET where nimi = @3))");
                using (MySqlConnection conn = new MySqlConnection(cs))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(mysql, conn);
                    cmd.Parameters.AddWithValue("@0", reseptit.Nimi);
                    cmd.Parameters.AddWithValue("@1", a.Nimi);
                    cmd.Parameters.AddWithValue("@2", a.Maara);
                    cmd.Parameters.AddWithValue("@3", a.Nimi);
                    int lkm = cmd.ExecuteNonQuery();
                    if (lkm == 1)
                    {
                        c = true;
                    }
                    else
                    {
                        c = false;
                    }
                }
            }
            if (b && c)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #6
0
        public static List <Aineet> GetAineet()
        {
            // Haetaan tiedot SQL-palvelimelta
            try
            {
                List <Aineet> aineet = new List <Aineet>();

                // määritellään yhteysmerkkijono
                string cs = GetMysqlConnectionString();
                // sql-kysely
                string sql = "SELECT nimi, parastaennen, maara, mittayksikko FROM AINEET ORDER BY nimi"; // TODO muokkaa sopiva sql lause
                // luodanaan yhteys ja avataan yhteys tietokantaan
                using (MySqlConnection conn = new MySqlConnection(cs))                                   // HUOM! using sulkee tietokantayhteyden sulkujen lopussa (ei tarvita conn.Close()
                {
                    conn.Open();
                    // suoritetaan kysely tietokantaan
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    using (MySqlDataReader rdr = cmd.ExecuteReader())
                    {
                        // käydään tulokset läpi ja muutetaan kukin tietue (row / rivi) Aineet-olioksi
                        while (rdr.Read())
                        {
                            Aineet a = new Aineet();

                            var pe   = rdr.GetDateTime(1);
                            var date = pe.Date;             // nyt ParastaEnnen muututtetu string-tyyppiseksi, ei enää DateTime
                            a.Nimi = rdr.GetString(0);
                            //   a.ParastaEnnen = rdr.GetDateTime(1);
                            a.ParastaEnnen = date.ToString("dd.MM.yyyy");
                            a.Maara        = rdr.GetFloat(2);
                            a.Mittayksikko = rdr.GetString(3);
                            aineet.Add(a);
                        }
                    }
                }
                // palautus
                return(aineet);
            }
            catch
            {
                throw;
            }
        }
Beispiel #7
0
        public static bool TallennaResepti(Reseptit resepti, List <Aineet> ainelista)  //Reseptin aineiden määrän ja ohjeen syöttäminen
        {
            bool   b   = false;
            bool   c   = false;
            string cs  = GetMysqlConnectionString();
            string sql = "UPDATE RESEPTIT SET ohje = @0 where nimi = @1";

            using (MySqlConnection conn = new MySqlConnection(cs))
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@0", resepti.Ohje);
                cmd.Parameters.AddWithValue("@1", resepti.Nimi);
                int lkm = cmd.ExecuteNonQuery();
                if (lkm == 1)
                {
                    b = true;
                }
                else
                {
                    b = false;
                }
            }

            // päivitetään tietokannan reseptiin aineiden nimet ja määrät (ainemäärät)

            Aineet a = new Aineet();

            foreach (var item in ainelista)
            {
                a = (Aineet)item;

                cs  = GetMysqlConnectionString();
                sql = "UPDATE OHJEET SET Maara = @0 where Resepti_ID = (Select Resepti_ID from RESEPTIT where nimi = @1) and Aine_ID = (Select Aine_ID from AINEET where nimi = @2)";
                using (MySqlConnection conn = new MySqlConnection(cs))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", a.Maara);
                    cmd.Parameters.AddWithValue("@1", resepti.Nimi);
                    cmd.Parameters.AddWithValue("@2", a.Nimi);

                    int lkm = cmd.ExecuteNonQuery();
                    if (lkm == 1)
                    {
                        c = true;
                    }
                    else
                    {
                        c = false;
                    }
                }
            }

            if (b && c)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #8
0
        public static bool LisaaOstoslistaan(Aineet aine)   // Tuotteen lisäys ostoslistalle
        {
            bool   match = false;
            Aineet a     = new Aineet();

            List <Aineet> lista = DB.GetOstoslista();

            if (lista != null)
            {
                foreach (var item in lista) // käydään ostoslista läpi
                {
                    a = (Aineet)item;
                    if (a.Nimi == aine.Nimi) // verrataan ostoslistan nimiä lisättävän olion nimeen
                    {
                        match = true;
                        break;
                    }
                }
            }
            if (!match)
            {
                System.IFormatProvider cultureUS = new System.Globalization.CultureInfo("en-US");          // vastaava muutos kts. LisaaAineita metodista selite
                string  test  = aine.Maara.ToString();
                decimal testi = Convert.ToDecimal(test);
                test = testi.ToString(new CultureInfo("en-US"));
                string cs  = GetMysqlConnectionString();
                string sql = string.Format("INSERT INTO OSTOSLISTA (Nimi, Maara, Yksikko) VALUES (@0,@1,@2)");         //SQL-injektion esto @-merkeillä
                using (MySqlConnection conn = new MySqlConnection(cs))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    cmd.Parameters.AddWithValue("@0", aine.Nimi);         //SQL-injektion esto
                    cmd.Parameters.AddWithValue("@1", test);
                    cmd.Parameters.AddWithValue("@2", aine.Mittayksikko);
                    int lkm = cmd.ExecuteNonQuery();
                    if (lkm == 1)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            else         //jos nimi löytyi ostoslistalta, päivitetään sen määrää
            {
                string cs  = GetMysqlConnectionString();
                string sql = "UPDATE OSTOSLISTA SET maara = maara +'" + aine.Maara + "' where nimi = '" + aine.Nimi + "'";
                using (MySqlConnection conn = new MySqlConnection(cs))
                {
                    conn.Open();
                    MySqlCommand cmd = new MySqlCommand(sql, conn);
                    int          lkm = cmd.ExecuteNonQuery();
                    if (lkm == 1)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
        }