//Janne
 //Varmistaa että poistettava tietue on valittu ja kysyy haluaako käyttäjä varmasti poistaa sen ennen kuin kutsuu poistavaa funktiota
 private void btnRemoveWorker_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (dgWorkerList.SelectedIndex == -1)
         {
             MessageBox.Show("Valitse työntekijä ensin.");
             return;
         }
         if (MessageBox.Show("Haluatko varmasti poistaa valitun työntekijän?", "Varmistus", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
         {
             // poistetaan datatablesta
             dvWorkers.Delete(dgWorkerList.SelectedIndex);
             // kutsutaan poistavaa funktiota jolle annetaan muokattu datatable
             int result = DBStudio.UpdateWorker(dtWorkers);
             MessageBox.Show(result + " työntekijä poistettu.");
             // päivittää näkymät
             RefreshWorkers();
             RefreshReservations();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        //Aleksi
        //Alustaa uuden listan, kutsuu tietokantakerroksesta asiakkaiden hakua. Täyttää listan asiakkaiden tiedoilla datatablesta.
        //Palauttaa täytetyn listan kutsujalle.
        public static List <Customer> GetCustomersList()
        {
            try
            {
                List <Customer> customers = new List <Customer>();
                DataTable       dt        = DBStudio.GetCustomers();

                long     pkey;
                DateTime bdate;
                DateTime rdate;

                foreach (DataRow row in dt.Rows)
                {
                    pkey  = Convert.ToInt64(row["PKey"].ToString());
                    bdate = Convert.ToDateTime(row["Birthdate"].ToString());
                    rdate = Convert.ToDateTime(row["RegDate"].ToString());



                    customers.Add(new Customer(pkey, row["Fname"].ToString(), row["Lname"].ToString(), row["Phone"].ToString(), row["Privilege"].ToString(), bdate, rdate));
                }

                return(customers);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //Janne
        // Tallentaa varauksen
        public static int SaveReservation(Reservation reservation)
        {
            int rowcount;

            rowcount = DBStudio.InsertReservation(reservation.Service, reservation.Time.ToString(), reservation.Date.Day + "." + reservation.Date.Month + "." + reservation.Date.Year, reservation.UnregCustomer, reservation.RegCustomer, reservation.Employee);

            return(rowcount);
        }
 //Janne
 //Antaa poistettavan muistion tiedot eteenpäin databasekerrokselle
 public static void DeleteNote(Note note)
 {
     try
     {
         DBStudio.DeleteNote(note.Message, note.FKey);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 //Janne
 // poistaa varauksen ja palauttaa poistettujen rivien määrän
 public static int RemoveReservation(int pkey)
 {
     try
     {
         int effectedRows = DBStudio.DeleteReservation(pkey);
         return(effectedRows);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 //Aleksi
 //Linkkifunktio käyttöliittymäkerroksen ja tietokantakerroksen välillä
 //ainoa toiminto välittää SQL kutsu Business-logiikan läpi
 public static DataTable GetCustomersTable()
 {
     try
     {
         DataTable dt = new DataTable();
         dt = DBStudio.GetCustomers();
         return(dt);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 //Janne
 //Hakee työntekijät datatablena
 public static DataTable GetWorkersTable()
 {
     try
     {
         DataTable dt = new DataTable();
         dt = DBStudio.GetAllWorkersData();
         return(dt);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        //Janne
        //Tutkii onko syöte kunnossa ja päivittää varaukset jos on
        public static int UpdateReservations(DataTable dtReservations)
        {
            try
            {
                foreach (DataRow row in dtReservations.Rows)
                {
                    if (row.RowState == DataRowState.Modified)
                    {
                        if (String.IsNullOrEmpty(row["RegCustomer"].ToString()) && row["UnregCustomer"].ToString() == "")
                        {
                            // ei kummassakaan asiakaskentässä dataa
                            return(-100);
                        }
                        if (!String.IsNullOrEmpty(row["RegCustomer"].ToString()) && row["UnregCustomer"].ToString() != "")
                        {
                            // molemmissa asiakaskentissä dataa
                            return(-101);
                        }
                        if (!String.IsNullOrEmpty(row["RegCustomer"].ToString()) && row["UnregCustomer"].ToString() == "")
                        {
                            // varmistetaan ettei check-constraint kosahda kannassa
                            row["UnregCustomer"] = null;
                        }
                        if (row["Service"].ToString().Length > 100)
                        {
                            // liikaa merkkejä palvelussa
                            return(-200);
                        }
                        if (!IsValidTime(row["ReservationTime"].ToString()))
                        {
                            //väärä aikaformaatti
                            return(-300);
                        }
                        if (!IsValidDate(row["ReservationDate"].ToString()))
                        {
                            // väärä päiväformaatti
                            return(-301);
                        }
                    }
                }

                int count;
                // jos mikään if ei lauennut, tehdään tallennus
                count = DBStudio.UpdateReservations(dtReservations);
                return(count);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 //Aleksi
 //kutsutaan updateCustomer funktiota ja virkistetään customers ja reservations näkymät
 private void btnSaveCustomerChanges_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         int rowcount = DBStudio.UpdateCustomer(dtCustomers);
         MessageBox.Show(rowcount + " riviä muokattu.");
         RefreshCustomers();
         RefreshReservations();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
        //Janne
        // Tutkii syötteet ja kutsuu alemman kerroksen työntekijäntallennusfunktiota jos syötteet kunnossa.
        private void btnSaveWorker_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtFname.Text == "" || txtLname.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
                {
                    MessageBox.Show("Tarpeellisia tietoja jätetty pois!");
                    return;
                }

                if (!Studio.IsValidPhone(txtPhone.Text))
                {
                    MessageBox.Show("Puhelinnumeron formaatti väärä.\nOikeat formaatit ovat\n0401234567\ntai\n+358401234567");
                    return;
                }

                //varmistus käyttäjältä
                if (MessageBox.Show("Haluatko varmasti lisätä tämän käyttäjän?\n" + "Nimi: " + txtFname.Text + " " + txtLname.Text + "\n" + "Osoite: " + txtAddress.Text + "\n" + "Puhelinnumero: " + txtPhone.Text + "\n" + "Muu tieto: " + txtOther.Text, "Varmistus", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    // lisätään datarow datatableen ja syötetään siihen uudet tiedot
                    dr            = dtWorkers.NewRow();
                    dr["fname"]   = txtFname.Text;
                    dr["lname"]   = txtLname.Text;
                    dr["addr"]    = txtAddress.Text;
                    dr["phone"]   = txtPhone.Text;
                    dr["regdate"] = DateTime.Now.Day + "." + DateTime.Now.Month + "." + DateTime.Now.Year;
                    dr["other"]   = txtOther.Text;
                    dtWorkers.Rows.Add(dr);
                    spAddWorker.Visibility           = Visibility.Collapsed;
                    btnShowWorkerSavePanel.IsEnabled = true;
                    txtFname.Text   = "";
                    txtLname.Text   = "";
                    txtAddress.Text = "";
                    txtPhone.Text   = "";
                    txtOther.Text   = "";

                    //annetaan datatable päivittävälle funktiolle
                    DBStudio.UpdateWorker(dtWorkers);
                    //päivitetään näkymät
                    RefreshWorkers();
                    RefreshReservations();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        //Aleksi
        //Asiakkaan poisto. Tarkistetaan onko asiakas valittu, jos ei, promptataan. Kysytään varmennus, kutsutaan tietokantakerrosta poistolla ja kutsutaan datagridien virkistystä.
        private void btnCDeleteCustomer_Click(object sender, RoutedEventArgs e)
        {
            if (dgCustomerList.SelectedIndex == -1)
            {
                MessageBox.Show("Valitse asiakas ensin.");
                return;
            }
            if (MessageBox.Show("Haluatko varmasti poistaa valitun asiakkaan?", "Varmistus", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
            {
                dvCustomers.Delete(dgCustomerList.SelectedIndex);

                int rows = DBStudio.UpdateCustomer(dtCustomers);
                RefreshCustomers();
                RefreshReservations();
                MessageBox.Show(rows + " asiakas poistettu.");
            }
        }
Example #12
0
        //Janne
        // Tutkii syötteet ja tallentaa muutokset jos syötteet kunnossa
        public static int UpdateWorkers(DataTable dtWorkers)
        {
            try
            {
                foreach (DataRow row in dtWorkers.Rows)
                {
                    if (row.RowState == DataRowState.Modified)
                    {
                        if (!IsValidPhone(row["Phone"].ToString()))
                        {
                            // väärä puhelinformaatti
                            return(-101);
                        }
                        if (row["Fname"].ToString().Length == 0 || row["Fname"].ToString().Length > 20)
                        {
                            // Liikaa tai liian vähän merkkejä etunimessä
                            return(-200);
                        }
                        if (row["Lname"].ToString().Length == 0 || row["Lname"].ToString().Length > 30)
                        {
                            // Liikaa tai liian vähän merkkejä sukunimessä
                            return(-201);
                        }
                        if (row["Addr"].ToString().Length == 0 || row["Addr"].ToString().Length > 50)
                        {
                            // Liikaa tai liian vähän merkkejä Osoitteessa
                            return(-300);
                        }
                        if (row["Other"].ToString().Length > 100)
                        {
                            // liikaa merkkejä otherissa
                            return(-400);
                        }
                    }
                }

                // tekee tallennukset ja palauttaa muutettujen rivien määrän
                return(DBStudio.UpdateWorker(dtWorkers));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #13
0
        //Janne
        //Hakee datatablen muistiorivejä, muuttaa sen listaksi ja palauttaa sen
        public static List <Note> GetNotesList()
        {
            try
            {
                DataTable dt;
                dt = DBStudio.GetNotes();

                List <Note> notes = new List <Note>();

                foreach (DataRow row in dt.Rows)
                {
                    notes.Add(new Note(row["Note"].ToString(), row["Fname"].ToString() + " " + row["Lname"].ToString(), Convert.ToInt32(row["Employee"].ToString())));
                }
                return(notes);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //Aleksi
        //tehdään asiakkaan tallennus tietokantaan, ensin tarkistaen syötteet(pituus, tyhjyys, tyyppi)
        //parsitaan päiväformaatti datepicker-elementistä tietokannalle sopivaksi
        //tehdään tallennnus kantaan, tyhjätään kentät, virkistetään näkymät
        private void btnSaveCustomer_Click(object sender, RoutedEventArgs e)
        {
            if (txtCFname.Text.Any(char.IsDigit) || txtCLname.Text.Any(char.IsDigit))
            {
                MessageBox.Show("Nimi kentissä ei voi olla numeroita.");
                return;
            }

            if (txtCPhone.Text.Any(char.IsLetter))
            {
                MessageBox.Show("Puhelinnumero kentässä ei voi olla kirjaimia.");
                return;
            }

            if (txtCFname.Text.Length > 20 || txtCLname.Text.Length > 20 || txtCPhone.Text.Length > 13 ||
                txtCPrivilege.Text.Length > 50 || dpCustomerBD.Text.Length > 10)
            {
                MessageBox.Show("Kenttä on liian pitkä..\n" +
                                "Etunimi voi olla 20 merkkiä.\n" +
                                "Sukunimi voi olla 20 merkkiä.\n" +
                                "Puhelinnumero voi olla 13 merkkiä.\n" +
                                "Etu voi olla 50 merkkiä.\n" +
                                "Syntymäaika voi olla 10 merkkiä.");
                return;
            }

            if (txtCFname.Text == "" || txtCLname.Text == "" || txtCFname.Text == "" || txtCPhone.Text == "" || txtCPrivilege.Text == "" || dpCustomerBD.SelectedDate == null)
            {
                MessageBox.Show("Kaikkien kenttien täytyy olla täytetty.");
                return;
            }

            if (!Studio.IsValidPhone(txtCPhone.Text))
            {
                MessageBox.Show("Puhelinnumeron formaatti väärä.\nOikeat formaatit ovat\n0401234567\ntai\n+358401234567");
                return;
            }

            try
            {
                if (MessageBox.Show("Haluatko varmasti lisätä tämän Asiakkaan?\n" + "Nimi: " + txtCFname.Text + " " + txtCLname.Text + "\n" + "Puhelinnumero: " + txtCPhone.Text + "\n" + "Etuus: " + txtCPrivilege.Text + "\n" + "Syntymäaika:" + dpCustomerBD.Text, "Varmistus", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
                {
                    string zeroMonth = "";
                    string zeroDay   = "";

                    if (dpCustomerBD.SelectedDate.Value.Month < 10)
                    {
                        zeroMonth = "0";
                    }

                    if (dpCustomerBD.SelectedDate.Value.Day < 10)
                    {
                        zeroDay = "0";
                    }

                    dr              = dtCustomers.NewRow();
                    dr["fname"]     = txtCFname.Text;
                    dr["lname"]     = txtCLname.Text;
                    dr["phone"]     = txtCPhone.Text;
                    dr["Birthdate"] = dpCustomerBD.SelectedDate.Value.Year + "-" + zeroMonth + dpCustomerBD.SelectedDate.Value.Month + "-" + zeroDay + dpCustomerBD.SelectedDate.Value.Day;
                    dr["Privilege"] = txtCPrivilege.Text;

                    zeroDay   = "";
                    zeroMonth = "";

                    if (DateTime.Now.Month < 10)
                    {
                        zeroMonth = "0";
                    }

                    if (DateTime.Now.Day < 10)
                    {
                        zeroDay = "0";
                    }

                    dr["regdate"] = DateTime.Now.Year + "-" + zeroMonth + DateTime.Now.Month + "-" + zeroDay + DateTime.Now.Day;
                    dtCustomers.Rows.Add(dr);
                    spAddCustomer.Visibility = Visibility.Collapsed;
                    txtCFname.Text           = "";
                    txtCLname.Text           = "";
                    txtCPhone.Text           = "";
                    dpCustomerBD.Text        = "";
                    txtCPrivilege.Text       = "";

                    DBStudio.UpdateCustomer(dtCustomers);
                    btnCShowSavePanel.IsEnabled = true;
                    RefreshCustomers();
                    RefreshReservations();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }