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); }