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