public void validerResa(Table table, DateTime dateResa, int nbconvive, Formule formuleChoisie) { Console.WriteLine("Quel est le nom du client pour la réservation?"); string nomResa=Console.ReadLine(); Console.WriteLine("Quel est le numéro du client?"); string noClient = Console.ReadLine(); int numClient = int.Parse(noClient); int i=0; string noTable=""; int notable=0; //Recherche du numéro de la table while (i<tables.Count) { if (tables[i]==table) { noTable = i.ToString(); notable = i; } i++; } //Recherche du nom de la formule choisie int j = 0; string nomFormule = ""; while (j < formules.Count) { if (formules[j] == formuleChoisie) { nomFormule = formules[j].NomFormule.ToString(); } j++; } //Création de la réservation dans le programme Reservation newResa = new Reservation(table, nomResa, numClient, dateResa, nbconvive, formuleChoisie); reservations.Add(newResa); //Création de l'occupation de la table réservée DateTime datefinresa = new DateTime(); datefinresa = dateResa + formuleChoisie.DureePresenceClient; Occupation occTable = new Occupation(dateResa, datefinresa); tables[notable].PlanningResa.Add(occTable); //Modification du fichier XML: Ajout de la réservation XmlDocument doc = new XmlDocument(); doc.Load("restaurant.xml"); XmlNode resaNodes = doc.SelectSingleNode("//Restaurant/Reservations"); XmlNode noeudBase = doc.CreateElement("Reservation"); XmlNode tableNode = doc.CreateElement("tableResa"); tableNode.InnerText = noTable; noeudBase.AppendChild(tableNode); resaNodes.AppendChild(noeudBase); XmlNode nomClientNode = doc.CreateElement("nomClient"); nomClientNode.InnerText = nomResa; noeudBase.AppendChild(nomClientNode); XmlNode numClientNode = doc.CreateElement("numClient"); numClientNode.InnerText = noClient; noeudBase.AppendChild(numClientNode); XmlNode dateNode = doc.CreateElement("dateResa"); string date = dateResa.ToString(); dateNode.InnerText = date; noeudBase.AppendChild(dateNode); XmlNode nbConviveNode = doc.CreateElement("nbConvive"); nbConviveNode.InnerText = nbconvive.ToString(); noeudBase.AppendChild(nbConviveNode); XmlNode formuleNode = doc.CreateElement("formuleResa"); formuleNode.InnerText = nomFormule; noeudBase.AppendChild(formuleNode); doc.Save("restaurant.xml"); //sauvegarder les occupations dans le xml (classes table et cuisiniers) Console.WriteLine("La réservation a été réalisée avec succès!"); }
public void creationReservationXml() { //chargement du document XmlDocument doc = new XmlDocument(); doc.Load("restaurant.xml"); //recherche du noeud "reservation" XmlNodeList itemNodes = doc.SelectNodes("//Restaurant/Reservations/Reservation"); List<int> _noTable = new List<int>(); List<string> _nomClient = new List<string>(); List<int> _numClient = new List<int>(); List<int> _nbConvive = new List<int>(); List<string> _nomFormule = new List<string>(); List<DateTime> _dateResa = new List<DateTime>(); //parcourt tous les noeuds "reservation" du document foreach (XmlNode itemNode in itemNodes) { XmlNode noTable = itemNode.SelectSingleNode("tableResa"); XmlNode nomClient = itemNode.SelectSingleNode("nomClient"); XmlNode numClient = itemNode.SelectSingleNode("numClient"); XmlNode dateResa = itemNode.SelectSingleNode("dateResa"); XmlNode nbConvive = itemNode.SelectSingleNode("nbConvive"); XmlNode nomFormule = itemNode.SelectSingleNode("formuleResa"); if (nomClient != null) { _nomFormule.Add(nomFormule.InnerText); int numclient = int.Parse(numClient.InnerText); _numClient.Add(numclient); _nomClient.Add(nomClient.InnerText); int notable = int.Parse(noTable.InnerText); _noTable.Add(notable); int nbconvive = int.Parse(nbConvive.InnerText); _nbConvive.Add(nbconvive); DateTime dateresa = Convert.ToDateTime(dateResa.InnerText); _dateResa.Add(dateresa); } } //CREATION RESERVATIONS DANS LE PROGRAMME for (int i = 0; i < _nomClient.Count(); i++) { Reservation newResa = new Reservation() ; Formule formuleChoisie=new Formule(); int j=0; while (j<formules.Count) { for (int k = 0; k < formules.Count; k++) { if (_nomFormule[i].Equals(formules[k].NomFormule)) { formuleChoisie=formules[k]; } } j++; } j = 0; while (j < tables.Count) { if (j==_noTable[i]) { if (tables[j].NbPlaceMax==4) { TableCarree tableResa = new TableCarree(); tableResa=tables[j] as TableCarree; newResa = new Reservation(tableResa, _nomClient[i], _numClient[i], _dateResa[i], _nbConvive[i], formuleChoisie); } else { if (tables[j].NbPlaceMax == 6) { TableRectangulaire tableResa = new TableRectangulaire(); tableResa = tables[j] as TableRectangulaire; newResa = new Reservation(tableResa, _nomClient[i], _numClient[i], _dateResa[i], _nbConvive[i], formuleChoisie); } else { TableRonde tableResa = new TableRonde(); tableResa = tables[j] as TableRonde; newResa = new Reservation(tableResa, _nomClient[i], _numClient[i], _dateResa[i], _nbConvive[i], formuleChoisie); } } } j++; } this.reservations.Add(newResa); } }