예제 #1
0
        // Selection d'un RDV
        private void ListRdvDataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (listRdvDataGrid.SelectedItem == null)
            {
                return;
            }
            appointment = listRdvDataGrid.SelectedItem as appointements;

            rdvCustomers.SelectedValue = appointment.idCustomer;
            rdvBrokers.SelectedValue   = appointment.idBroker;
            rdvDate.Text = appointment.dateHour.ToShortDateString();
            string dateTime = appointment.dateHour.ToShortTimeString();
            string hour     = dateTime.Substring(0, dateTime.Length - 3);

            rdvHours.Text = hour;
            string min = dateTime.Substring(3);

            rdvMinutes.Text    = min;
            EditRdv.Visibility = Visibility.Visible;
        }
        // Enregistrer
        private void Save_Click(object sender, RoutedEventArgs e)
        {
            // Vider les champs d'erreurs
            ErrorCustomer.Text = "";
            ErrorBroker.Text   = "";
            ErrorDate.Text     = "";
            ErrorTime.Text     = "";
            appointements rdvToAdd = new appointements();
            // booleen pour vérification
            bool isValid = true;

            // Vérification comboboxes
            if (rdvCustomers.SelectedValue == null)
            {
                ErrorCustomer.Text = "Sélectionnez un Client";
                isValid            = false;
            }
            if (rdvBrokers.SelectedValue == null)
            {
                ErrorBroker.Text = "Sélectionnez un Courtier";
                isValid          = false;
            }

            // Enregistrement du client et du courtier concerné par le RDV
            rdvToAdd.idCustomer = Convert.ToInt32(rdvCustomers.SelectedValue);
            rdvToAdd.idBroker   = Convert.ToInt32(rdvBrokers.SelectedValue);

            // Vérification Date
            if (String.IsNullOrEmpty(rdvDate.Text))
            {
                ErrorDate.Text = "Date manquante";
                isValid        = false;
            }

            // Verification Heures et minutes
            if ((!String.IsNullOrEmpty(rdvHours.Text)) && (!String.IsNullOrEmpty(rdvMinutes.Text)))
            {
                // Vérif heures
                if (!Regex.IsMatch(rdvHours.Text, regexTime))
                {
                    ErrorTime.Text = "Ecrire une heure valide";
                    isValid        = false;
                }
                // Vérif minutes
                else if (!Regex.IsMatch(rdvMinutes.Text, regexTime))
                {
                    ErrorTime.Text = "Ecrire des minutes valides";
                    isValid        = false;
                }
                // Vérif OK
                else
                {
                    time = rdvHours.Text + ":" + rdvMinutes.Text;
                }
            }
            else
            {
                ErrorTime.Text = "Horaire non valide";
                isValid        = false;
            }

            //// Autre methode à mettre avec vérification null ou vide
            //if (!String.IsNullOrEmpty(rdvHours.Text))
            //{
            //    if (int.TryParse(rdvHours.Text, out int resultHour))
            //    {
            //        if ( resultHour < 8 || resultHour > 20)
            //        ErrorTime.Text = "Heure non valide";
            //        isValid = false;
            //    }
            //    else
            //    {
            //        ErrorTime.Text = "Entrer une heure";
            //        isValid = false;
            //    }
            //}
            //else
            //{
            //    ErrorTime.Text = "Saisissez une heure";
            //    isValid = false;
            //}


            // Faire en sorte qu'un courtier n'ai pas 2 rendez-vous en même temps (même jour et même heure)
            var brokerAlreadyUsed = db.appointements.Where(rdv => rdv.idBroker == rdvToAdd.idBroker && rdv.dateHour == rdvToAdd.dateHour).SingleOrDefault();

            if (brokerAlreadyUsed != null)
            {
                ErrorCustomer.Text = "Un RDV existe déja avec ce Courtier à cette plage horaire";
                isValid            = false;
            }
            var customerAlreadyUsed = db.appointements.Where(rdv => rdv.idCustomer == rdvToAdd.idCustomer && rdv.dateHour == rdvToAdd.dateHour).SingleOrDefault();

            if (customerAlreadyUsed != null)
            {
                ErrorBroker.Text = "Un RDV existe déja avec ce Client à cette plage horaire";
                isValid          = false;
            }

            if (isValid == true)
            {
                dateTime          = rdvDate.Text + " " + time;
                rdvToAdd.dateHour = Convert.ToDateTime(dateTime);
                db.appointements.Add(rdvToAdd);
                db.SaveChanges();
                ErrorCustomer.Text = "";
                ErrorBroker.Text   = "";
                ErrorDate.Text     = "";
                ErrorTime.Text     = "";
                MessageBox.Show("Rendez-vous ajouté avec succès", "Succès", MessageBoxButton.OK, MessageBoxImage.Information);
                NavigationService.Navigate(new System.Uri("appointmentsList.xaml", UriKind.RelativeOrAbsolute));
            }
        }
예제 #3
0
 public appointmentsList()
 {
     InitializeComponent();
     appointment = new appointements();
 }