private void ButtonDeleteWebUser_Click(object sender, RoutedEventArgs e)
        {
            WebUser webUser = (WebUser)ListWebUser.SelectedItem;

            if (webUser != null)
            {
                DeleteWindow deleteWindow = new DeleteWindow();
                deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer l'internaute " + webUser.Firstname + " " + webUser.Lastname + " ?";
                deleteWindow.ShowDialog();

                // tester si la fenetre deleteWindow renvois un vrai
                if (deleteWindow.DialogResult == true)
                {
                    // supprimer l'internaute de la base de donnée
                    db.WebUser.Remove(db.WebUser.First(dbWebUser => dbWebUser.Identifier == webUser.Identifier));

                    // supprimer le l'internaute de la fenétre.
                    WebUsers.Remove(webUser);

                    //Sauvegarder les changements.
                    db.SaveChanges();
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un internaute.");
            }
        }
        private void ButtonDeletePartner_Click(object sender, RoutedEventArgs e)
        {
            Partner partner = (Partner)ListPartner.SelectedItem;

            if (partner != null)
            {
                DeleteWindow deleteWindow = new DeleteWindow();
                deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le partenaire " + partner.Account.Email + " ?";
                deleteWindow.ShowDialog();

                // tester si la fenetre deleteWindow renvois un vrai
                if (deleteWindow.DialogResult == true)
                {
                    // Si il'y a une offre séléctionée.
                    // supprimer l'offre de la base de donnée
                    db.Partner.Remove(db.Partner.First(dbPartner => dbPartner.Identifier == partner.Identifier));

                    // supprimer le l'offre de la fenétre.
                    Partners.Remove(partner);

                    //Sauvegarder les changements.
                    db.SaveChanges();
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un partenaire.");
            }
        }
        private void ButtonDeleteTypeOfContract_Click(object sender, RoutedEventArgs e)
        {
            TypeOfContract typeOfContract = (TypeOfContract)ListTypeOfContract.SelectedItem;

            if (typeOfContract != null)
            {
                DeleteWindow deleteWindow = new DeleteWindow();
                deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le type de contrat " + typeOfContract.Label + " ?";
                deleteWindow.ShowDialog();

                // tester si la fenetre deleteWindow renvois un vrai
                if (deleteWindow.DialogResult == true)
                {
                    // Si il'y a une offre séléctionée.
                    // supprimer l'offre de la base de donnée
                    db.TypeOfContract.Remove(db.TypeOfContract.First(dbTypeOfContract => dbTypeOfContract.Identifier == typeOfContract.Identifier));

                    // supprimer le l'offre de la fenétre.
                    TypeOfContracts.Remove(typeOfContract);

                    //Sauvegarder les changements.
                    db.SaveChanges();
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un type de contrat.");
            }
        }
        private void ButtonDeletePack_Click(object sender, RoutedEventArgs e)
        {
            Pack pack = (Pack)ListPack.SelectedItem;

            if (pack != null)
            {
                DeleteWindow deleteWindow = new DeleteWindow();
                deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le pack de " + pack.NumberDays + " jour(s) et " + pack.NumberOffers + " offre(s) à " + pack.Price + "€ ? ";
                deleteWindow.ShowDialog();

                // tester si la fenetre deleteWindow renvois un vrai
                if (deleteWindow.DialogResult == true)
                {
                    // supprimer l'internaute de la base de donnée
                    db.Pack.Remove(db.Pack.First(dbPack => dbPack.Identifier == pack.Identifier));

                    // supprimer le l'internaute de la fenétre.
                    Packs.Remove(pack);

                    //Sauvegarder les changements.
                    db.SaveChanges();
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un pack.");
            }
        }
        private void ButtonDeleteOffer_Click(object sender, RoutedEventArgs e)
        {
            Offer offer = (Offer)ListOffer.SelectedItem;

            if (offer != null)
            {
                DateTime now = DateTime.Now;
                TimeSpan gap = now - offer.DateStartPublication;
                // Vérifie si l'offre est dans la période de publication
                if (gap.Days <= offer.PublicationDuration)
                {
                    MessageBox.Show("Cette offre est en cours de publication.");
                }
                else
                {
                    DeleteWindow deleteWindow = new DeleteWindow();
                    deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer l'offre n°" + offer.Reference + " ?";
                    deleteWindow.ShowDialog();

                    if (deleteWindow.DialogResult == true)
                    {
                        // Supprime l'offre de la base de donnée
                        db.Offer.Remove(db.Offer.First(dbOffer => dbOffer.IdClient == offer.IdClient));

                        // Supprime le l'offre de la fenétre.
                        Offers.Remove(offer);

                        // Sauvegarder les changements.
                        db.SaveChanges();
                    }
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner une offre.");
            }
        }
        private void ButtonDeleteJob_Click(object sender, RoutedEventArgs e)
        {
            Job job = (Job)ListJob.SelectedItem;

            if (job != null)
            {
                DeleteWindow deleteWindow = new DeleteWindow();
                deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le métier " + job.Label + " ?";
                deleteWindow.ShowDialog();

                // tester si la fenetre deleteWindow renvois un vrai
                if (deleteWindow.DialogResult == true)
                {
                    db.Job.Remove(db.Job.First(dbJob => dbJob.Identifier == job.Identifier));
                    Jobs.Remove(job);

                    db.SaveChanges();
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un métier.");
            }
        }
        private void ButtonDeleteJobDomain_Click(object sender, RoutedEventArgs e)
        {
            JobDomain jobDomain = (JobDomain)ListJobDomain.SelectedItem;

            if (jobDomain != null)
            {
                int numberJobs = db.Job.Count(dbJob => dbJob.IdJobDomain == jobDomain.Identifier);

                if (numberJobs == 0)
                {
                    DeleteWindow deleteWindow = new DeleteWindow();
                    deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le domaine de métier " + jobDomain.Label + " ?";
                    deleteWindow.ShowDialog();

                    // tester si la fenetre deleteWindow renvois un vrai
                    if (deleteWindow.DialogResult == true)
                    {
                        db.JobDomain.Remove(db.JobDomain.First(dbJobDomain => dbJobDomain.Identifier == jobDomain.Identifier));
                        JobDomains.Remove(jobDomain);

                        db.SaveChanges();
                    }
                }
                else
                {
                    MessageBox.Show("Ce domaine de métier contient un ou plusieurs métier. Impossible de le supprimer.");
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un domaine de métier.");
            }
        }
        private void ButtonDeleteClient_Click(object sender, RoutedEventArgs e)
        {
            Client client = (Client)ListClient.SelectedItem;

            // Teste si la fenetre deleteWindow renvoi un vrai
            if (client != null)
            {
                if (db.Offer.FirstOrDefault(dbOffer => dbOffer.IdClient == client.Identifier) != null)
                {
                    MessageBox.Show("Impossible de supprimer ce client car il a créé une ou plusieurs offre(s).");
                }
                else
                {
                    DeleteWindow deleteWindow = new DeleteWindow();
                    deleteWindow.Description = "Êtes-vous sûr(e) de vouloir supprimer le client " + client.Company + " ?";
                    deleteWindow.ShowDialog();

                    // tester si la fenetre deleteWindow renvois un vrai
                    if (deleteWindow.DialogResult == true)
                    {
                        // Si il'y a une offre séléctionée.
                        // supprimer le client de la base de donnée
                        db.Client.Remove(db.Client.First(dbClient => dbClient.Identifier == client.Identifier));

                        // supprimer le l'offre de la fenétre.
                        Clients.Remove(client);

                        //Sauvegarder les changements.
                        db.SaveChanges();
                    }
                }
            }
            else
            {
                // Afficher le message d'erreur
                MessageBox.Show("Veuillez sélectionner un client.");
            }
        }