示例#1
0
        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!");
        }
示例#2
0
        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);
            }
        }