Esempio n. 1
0
 public static bool create(Gast a)
 {
     return(true);
 }
Esempio n. 2
0
        public static bool Create(Benutzer Neu, Gast gast, Mitarbeiter Ma, Studenten Stu, int State, string pw)
        {
            using (MySqlConnection con =
                       new MySqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString))
            {
                con.Open();
                MySqlCommand countSQL = con.CreateCommand();
                countSQL.CommandText = "Select Count(Nummer) From Benutzer ;";
                MySqlDataReader r = countSQL.ExecuteReader();
                //TODO
                r.Read();
                int count = Int16.Parse(r["Count(Nummer)"].ToString());
                int id    = 20 + count;
                con.Close();
                con.Open();
                var tr = con.BeginTransaction();
                try
                {// innerhalb der Connection con eine Transaktion beginnen
                    using (MySqlCommand cmd = new MySqlCommand("", con))
                    {
                        cmd.Transaction = tr;
                        //BEnutzer
                        cmd.CommandText = "INsert INTO `Benutzer` (`Nummer`, `Vorname`, `Nachname`, `E-Mail`, `Nutzername`, `LetzterLogin`, `Anlegedatum`, `Geburtsdatum`, `Salt`, `Hash`, `Aktiv`) VALUES" +
                                          " (@id, @Vornamne, @Nachname, @mail, @Username, null , @andate, @gbdate,  @Salt, @hash, 0);";
                        cmd.Parameters.AddWithValue("id", id);
                        cmd.Parameters.AddWithValue("Vornamne", Neu.Vorname);
                        cmd.Parameters.AddWithValue("Nachname", Neu.Nachname);
                        cmd.Parameters.AddWithValue("mail", Neu.E_Mail);
                        cmd.Parameters.AddWithValue("Username", Neu.Nutzername);
                        cmd.Parameters.AddWithValue("andate", DateTime.Now);
                        cmd.Parameters.AddWithValue("gbdate", Neu.Geburtsdatum);
                        string   pwhasstring = PasswordSecurity.PasswordStorage.CreateHash(pw);
                        string[] pwarray     = pwhasstring.Split(':');
                        cmd.Parameters.AddWithValue("Salt", pwarray[3]);
                        cmd.Parameters.AddWithValue("hash", pwarray[4]);

                        int rows = cmd.ExecuteNonQuery(); // DML
                        if (Neu.ISA == "Gast")
                        {
                            //gast
                            cmd.CommandText = "INSERT INTO `Gäste` (ID , Grund , Ablaufdatum) Values (@id, @g, @dat); ";

                            cmd.Parameters.AddWithValue("g", gast.Grund);
                            cmd.Parameters.AddWithValue("dat", gast.Ablaufdatum);
                            rows = cmd.ExecuteNonQuery();
                        }
                        else
                        {
                            if (State == 1 || State == 3)
                            {
                                cmd.CommandText = "INSERT INTO `FHAngehörige` (`ID`) VALUES (@id);";
                                //params



                                rows = cmd.ExecuteNonQuery();
                                //FH angehörige
                                cmd.CommandText = "INSERT INTO `Student` (Matrikelnummer, Studiengang , ID) VALUES (@mat, @stugang, @id);";
                                //params
                                cmd.Parameters.AddWithValue("mat", Stu.Matrikelnummer);
                                cmd.Parameters.AddWithValue("stugang", Stu.Studiengang);

                                rows = cmd.ExecuteNonQuery();
                                //student
                            }
                            if (State == 2 || State == 3)
                            {
                                if (State == 2)
                                {
                                    cmd.CommandText = "INSERT INTO `FHAngehörige` (`ID`) VALUES (@id);";
                                    //params
                                    rows = cmd.ExecuteNonQuery();
                                    //FH angehörige
                                }
                                cmd.CommandText = "INSERT INTO `Mitarbeiter` (`büro`, Telefon , ID) VALUES ( @b, @T, @id); ";
                                //params
                                cmd.Parameters.AddWithValue("T", Ma.Telefon);
                                cmd.Parameters.AddWithValue("b", Ma.Büro);

                                rows = cmd.ExecuteNonQuery();
                                //MA
                            }
                        }
                        // alle fehlerfrei?  commit!
                        tr.Commit();
                        // falls es Probleme gab
                    }
                }

                catch (Exception e)
                {
                    tr.Rollback();
                    string ex = e.Message;
                    return(false);
                }
            }
            return(true);
        }