//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());
     }
 }
        //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.");
            }
        }
        //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());
            }
        }