public static void ChargerDocResto(Restaurant R)
        {
            XDocument docRestau = new XDocument();

            docRestau = XDocument.Load("docRestau.xml");

            List <Table> tableResa = new List <Table>();
            int          j         = 0;

            var services = from service in docRestau.Descendants("Services") select service;

            foreach (XElement s in services.Elements("Service"))
            {
                TimeSpan HoraireOpenEmployesMidi  = TimeSpan.Parse(s.Element("HoraireOpenEmployesMidi").Value);
                TimeSpan HoraireCloseEmployesMidi = TimeSpan.Parse(s.Element("HoraireCloseEmployesMidi").Value);
                TimeSpan HoraireOpenClientsMidi   = TimeSpan.Parse(s.Element("HoraireOpenClientsMidi").Value);
                TimeSpan HoraireCloseClientsMidi  = TimeSpan.Parse(s.Element("HoraireCloseClientsMidi").Value);

                TimeSpan HoraireOpenEmployesSoir  = TimeSpan.Parse(s.Element("HoraireOpenEmployesSoir").Value);
                TimeSpan HoraireCloseEmployesSoir = TimeSpan.Parse(s.Element("HoraireCloseEmployesSoir").Value);
                TimeSpan HoraireOpenClientsSoir   = TimeSpan.Parse(s.Element("HoraireOpenClientsSoir").Value);
                TimeSpan HoraireCloseClientsSoir  = TimeSpan.Parse(s.Element("HoraireCloseClientsSoir").Value);

                DateTime Jour = DateTime.Parse(s.Element("jour").Value);

                R.listeServicesParJour.Add(new ServiceParJour(HoraireOpenEmployesMidi, HoraireCloseEmployesMidi, HoraireOpenClientsMidi,
                                                              HoraireCloseClientsMidi, HoraireOpenEmployesSoir, HoraireCloseEmployesSoir, HoraireOpenClientsSoir, HoraireCloseClientsSoir, Jour, ListeResa));

                var tables = from table in docRestau.Descendants("Services").Descendants("Reservations").Descendants("ListeTable") select table;
                foreach (XElement t in tables.Elements("Table"))
                {
                    int numTable = int.Parse(t.Element("IdTable").Value);
                }

                var resas = from resa
                            in docRestau.Descendants("Services").Descendants("Reservations") // YAHOUUUUU
                                                                                             //where ()
                            select resa;
                foreach (XElement r in resas.Elements("Reservation"))
                {
                    string   nomClient         = r.Element("IdReservation").Value;
                    string   numTelephone      = r.Element("NumTelephone").Value;
                    TimeSpan jourResa          = TimeSpan.Parse(r.Element("JourResa").Value);
                    TimeSpan horaireDebutResa  = TimeSpan.Parse(r.Element("HoraireDebut").Value);
                    TimeSpan horaireFinResa    = TimeSpan.Parse(r.Element("HoraireFin").Value);
                    int      nbConvives        = int.Parse(r.Element("NombreConvives").Value);
                    string   nomFormuleRetenue = r.Element("FormuleRetenue").Value;
                    int      i = 0;
                    while (nomFormuleRetenue != R.listeFormules[i].nomFormule)
                    {
                        i++;
                    }
                    Formule FormuleRetenue = R.listeFormules[i];
                    Service Service        = R.listeServicesParJour[j];
                }

                j++;
            }
        } // A FINIR
 public Reservation(Restaurant Restaurant, ServiceParJour ServiceParJour, string NomClient,
                    string NumTelephone, DateTime JourResa, DateTime HoraireDebutResa, DateTime HoraireFinResa,
                    int NbConvives, Formule FormuleRetenue, List <Table> TableAffectee)
 {
     restaurant       = Restaurant;
     service          = ServiceParJour;
     nomClient        = NomClient;
     numTelephone     = NumTelephone;
     jourResa         = JourResa;
     horaireDebutResa = HoraireDebutResa;
     horaireFinResa   = HoraireFinResa;
     nbConvives       = NbConvives;
     formuleRetenue   = FormuleRetenue;
     tableAffectee    = TableAffectee;
 }
        // Demande des informations nécessaires à la création d'une nouvelle réservation.
        public void ajoutReservation()
        {
            Reservation a;

            Console.WriteLine("Nom du Client ?");
            string NomClient = Console.ReadLine();

            Console.WriteLine("Prénom du Client ?");
            NomClient += " " + Console.ReadLine();
            Console.WriteLine("Date de Réservation (yyyy,mm,dd) ?");
            DateTime JourResa = DateTime.Parse(Console.ReadLine());

            Console.WriteLine("Heure de réservation (hh,mm,ss) ?");
            DateTime       HDR     = DateTime.Parse(Console.ReadLine());
            ServiceParJour Service = trouveService(JourResa);

            Console.WriteLine("Nombre de convives ?");
            int NbConvives = Program.gestErreurEntier();

            // Récupération des différentes formules du restaurant
            Console.WriteLine("Quelle Formule (entrez le numéro) ?");
            for (int i = 0; i < listeFormules.Count; i++)
            {
                Console.WriteLine("" + i + " : " + listeFormules[i]);
            }
            int frappe;

            do
            {
                Console.WriteLine("Entrez le numéro de la formule souhaitée s'il vous plait.");
                frappe = Program.gestErreurEntier();
            }while (frappe < 0 && frappe > (listeFormules.Count - 1));
            Formule      FormRet       = listeFormules[frappe];
            DateTime     HFR           = HDR + FormRet.dureeConsommation;
            List <Table> TableAffectee = new List <Table>();
            string       NumTel;

            // Si la réservation concerne une commande à emporter, pas besoin de table.
            if (FormRet.surPlace == false)
            {
                NumTel = Console.ReadLine();
                a      = new Reservation(this, Service, NomClient, NumTel, JourResa, HDR, HFR, NbConvives, FormRet, TableAffectee);
            }
            else
            {
                // Tente de trouver une table adéquate en jumelant ou non, sinon refus de la réservation.
                try
                {
                    TableAffectee = Service.reservations[0].trouveTables(this, NbConvives, Service, HDR, HFR);
                }
                catch
                {
                    // Reconduction quand la réservation est refusée.
                    Console.WriteLine("La réservation est impossible, aucune table disponible pour ce nombre de convives !");
                    Console.WriteLine("0 : Annulez ?");
                    Console.WriteLine("1 : Autre réservation ?");
                    string frappe2;
                    do
                    {
                        Console.WriteLine("Entrez le numéro de la requête souhaitée s'il vous plait.");
                        frappe2 = Console.ReadLine();
                    }while (frappe2 != "0" && frappe2 != "1");
                    int choix = int.Parse(frappe2);
                    switch (choix)
                    {
                    case 0:
                        Program.GererReservation(this);
                        break;

                    case 1:
                        ajoutReservation();
                        break;
                    }
                }
            }
            Console.WriteLine("Numéro de téléphone ?");
            NumTel = Console.ReadLine();
            // Si tout est bon, création de la réservation
            a = new Reservation(this, Service, NomClient, NumTel, JourResa, HDR, HFR, NbConvives, FormRet, TableAffectee);
        }