Пример #1
0
        public bool jumelage(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C)
        {
            DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient;
            int i = 0;
            while (i < tables.Count) //on parcoure la liste des tables
            {
                int k = 0;
                if (tables[i].Jumelable == true)//on verifie si la premiere table est jumelable
                {
                    while (k < tables[k].PlanningResa.Count) //on verifie qu'elle est dispo
                    {
                        int comparaisonDebut1 = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee);
                        int comparaisonFin1 = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee);
                        //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup
                        int j = i + 1;

                        if ((comparaisonDebut1 < 0 && comparaisonFin1 < 0) || (comparaisonDebut1 > 0 && comparaisonFin1 > 0))//la date n'est pas la même
                        {
                            while (j < tables.Count) //on parcourt une deuxieme fois la liste pour trouver une deuxieme table jumelable et dispo
                            {
                                if (tables[j].Jumelable == true)//on verifie si la deuxième table est jumelable
                                {
                                    int l = 0;
                                    while (l < tables[l].PlanningResa.Count) //on verifie qu'elle est dispo
                                    {
                                        int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[l].DateDebutOccupee);
                                        int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[l].DateFinOccupee);

                                        if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0))
                                        //la date n'est pas la même
                                        {
                                            //ON JUMELE LES TABLES
                                            TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                            bool cuisiniersDispo;
                                            cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                            if (cuisiniersDispo == true)
                                            {
                                                validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                return true;
                                            }
                                        }
                                        else
                                        {
                                            if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0))
                                            //la date est la même mais l'horraire n'est pas simultané
                                            {
                                                //ON JUMELE LES TABLES
                                                TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                                bool cuisiniersDispo;
                                                cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                                if (cuisiniersDispo == true)
                                                {
                                                    validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                    return true;
                                                }

                                            }
                                            else
                                            {
                                                Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
                                                Console.ReadLine();
                                                return false;
                                            }
                                        }

                                        l++;
                                    }

                                }
                                j++;
                            }
                        }

                        else
                        {
                            if ((comparaisonDebut1 < 0 && comparaisonFin1 > 0) || (comparaisonDebut1 > 0 && comparaisonFin1 < 0))
                                //la date est la même mais les horaires ne se mélangent pas
                                {
                                    if (tables[j].Jumelable == true)//on verifie si la deuxième table est jumelable
                                    {
                                        int m = 0;
                                        while (m < tables[m].PlanningResa.Count) //on verifie qu'elle est dispo
                                        {
                                            int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[m].DateDebutOccupee);
                                            int comparaisonFin2 = DateTime.Compare(dateDeFin, tables[j].PlanningResa[m].DateFinOccupee);

                                            if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0))
                                            //la date n'est pas la même
                                            {
                                                //ON JUMELE LES TABLES
                                                TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                                bool cuisiniersDispo;
                                                cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                                if (cuisiniersDispo == true)
                                                {
                                                    validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                    return true;
                                                }
                                            }
                                            else
                                            {
                                                if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0))
                                                //la date est la même mais l'horraire n'est pas simultané
                                                {
                                                    //ON JUMELE LES TABLES
                                                    TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                                    bool cuisiniersDispo;
                                                    cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                                    if (cuisiniersDispo == true)
                                                    {
                                                        validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                        return true;
                                                    }

                                                }
                                                else
                                                {
                                                    Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
                                                    Console.ReadLine();
                                                    return false;
                                                }
                                            }
                                            k++;

                                        }

                                    }
                                }
                            }

                        }
                        k++;
                    }
                    i++;
                }
            Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
            Console.ReadLine();
            return false;
        }
Пример #2
0
        public bool jumelage(DateTime dateDeDebut, int nbconvive, Formule formuleChoisie, Cuisine C)
        {
            DateTime dateDeFin = dateDeDebut + formuleChoisie.DureePresenceClient;
            int      i         = 0;

            while (i < tables.Count) //on parcoure la liste des tables
            {
                int k = 0;
                if (tables[i].Jumelable == true)             //on verifie si la premiere table est jumelable
                {
                    while (k < tables[k].PlanningResa.Count) //on verifie qu'elle est dispo
                    {
                        int comparaisonDebut1 = DateTime.Compare(dateDeDebut, tables[i].PlanningResa[k].DateDebutOccupee);
                        int comparaisonFin1   = DateTime.Compare(dateDeFin, tables[i].PlanningResa[k].DateFinOccupee);
                        //l'heure de la résa n'est pas comprise dans le temps pendant lequel la table est occup
                        int j = i + 1;

                        if ((comparaisonDebut1 < 0 && comparaisonFin1 < 0) || (comparaisonDebut1 > 0 && comparaisonFin1 > 0)) //la date n'est pas la même
                        {
                            while (j < tables.Count)                                                                          //on parcourt une deuxieme fois la liste pour trouver une deuxieme table jumelable et dispo
                            {
                                if (tables[j].Jumelable == true)                                                              //on verifie si la deuxième table est jumelable
                                {
                                    int l = 0;
                                    while (l < tables[l].PlanningResa.Count) //on verifie qu'elle est dispo
                                    {
                                        int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[l].DateDebutOccupee);
                                        int comparaisonFin2   = DateTime.Compare(dateDeFin, tables[j].PlanningResa[l].DateFinOccupee);

                                        if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0))
                                        //la date n'est pas la même
                                        {
                                            //ON JUMELE LES TABLES
                                            TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                            bool cuisiniersDispo;
                                            cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                            if (cuisiniersDispo == true)
                                            {
                                                validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                return(true);
                                            }
                                        }
                                        else
                                        {
                                            if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0))
                                            //la date est la même mais l'horraire n'est pas simultané
                                            {
                                                //ON JUMELE LES TABLES
                                                TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                                bool cuisiniersDispo;
                                                cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                                if (cuisiniersDispo == true)
                                                {
                                                    validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                    return(true);
                                                }
                                            }
                                            else
                                            {
                                                Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
                                                Console.ReadLine();
                                                return(false);
                                            }
                                        }


                                        l++;
                                    }
                                }
                                j++;
                            }
                        }

                        else
                        {
                            if ((comparaisonDebut1 < 0 && comparaisonFin1 > 0) || (comparaisonDebut1 > 0 && comparaisonFin1 < 0))
                            //la date est la même mais les horaires ne se mélangent pas
                            {
                                if (tables[j].Jumelable == true)    //on verifie si la deuxième table est jumelable
                                {
                                    int m = 0;
                                    while (m < tables[m].PlanningResa.Count)     //on verifie qu'elle est dispo
                                    {
                                        int comparaisonDebut2 = DateTime.Compare(dateDeDebut, tables[j].PlanningResa[m].DateDebutOccupee);
                                        int comparaisonFin2   = DateTime.Compare(dateDeFin, tables[j].PlanningResa[m].DateFinOccupee);

                                        if ((comparaisonDebut2 < 0 && comparaisonFin2 < 0) || (comparaisonDebut2 > 0 && comparaisonFin2 > 0))
                                        //la date n'est pas la même
                                        {
                                            //ON JUMELE LES TABLES
                                            TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                            bool cuisiniersDispo;
                                            cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                            if (cuisiniersDispo == true)
                                            {
                                                validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                return(true);
                                            }
                                        }
                                        else
                                        {
                                            if ((comparaisonDebut2 < 0 && comparaisonFin2 > 0) || (comparaisonDebut2 > 0 && comparaisonFin2 < 0))
                                            //la date est la même mais l'horraire n'est pas simultané
                                            {
                                                //ON JUMELE LES TABLES
                                                TablesJumelees newjumellee = new TablesJumelees(tables[i], tables[j]);

                                                bool cuisiniersDispo;
                                                cuisiniersDispo = C.verifierCuisiniersDispo(nbconvive, dateDeDebut, formuleChoisie);
                                                if (cuisiniersDispo == true)
                                                {
                                                    validerResa(newjumellee, dateDeDebut, nbconvive, formuleChoisie);
                                                    return(true);
                                                }
                                            }
                                            else
                                            {
                                                Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
                                                Console.ReadLine();
                                                return(false);
                                            }
                                        }
                                        k++;
                                    }
                                }
                            }
                        }
                    }
                    k++;
                }
                i++;
            }
            Console.WriteLine("La reservation n'est pas possible. Recommencez en tapant sur ENTREE.");
            Console.ReadLine();
            return(false);
        }