public void restaurant() { //Instiate the table controller TableController.GetTableController().createListTable(tables); //Instiate the Maitre d'Hotel StaffController.GetStaffController().addMaitreHotel(1); //Instiate all the chef de rang StaffController.GetStaffController().addChefRang(2); //Instiate all the waiters StaffController.GetStaffController().addServer(waiters); Console.WriteLine("Le restaurant possède : " + waiters + " serveurs et " + tables); Task task = Task.Factory.StartNew(() => clientArrival()); while (true) { //while (Console.ReadKey().KeyChar != 'a') //{ // Thread.Sleep(500); //} //if (stop == true) //{ // TableController.GetTableController().MyManualResetEvent.Reset(); // stop = false; //} //else if (stop == false) //{ // TableController.GetTableController().MyManualResetEvent.Set(); // stop = true; //} //else //{ // Console.WriteLine("error"); //} } }
public void callChefRang(int idTable) { TableController.GetTableController().MyManualResetEvent.WaitOne(Timeout.Infinite); if ((idTable == 1) || (idTable == 2)) { for (int i = 0; i < StaffController.GetStaffController().MylistStaff.Count(); i++) { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() == "ControleurRestaurant.ChefRang") { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).returnID() == 1) { Console.WriteLine("j'appelle chef rang :" + StaffController.GetStaffController().MylistStaff.ElementAt(i).returnID() + "pour la table :" + idTable); StaffController.GetStaffController().MylistStaff.ElementAt(i).doStuff(idTable); } } } } if ((idTable == 3) || (idTable == 4)) { for (int i = 0; i < StaffController.GetStaffController().MylistStaff.Count(); i++) { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() == "ControleurRestaurant.ChefRang") { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).returnID() == 2) { Console.WriteLine("j'appelle chef rang :" + StaffController.GetStaffController().MylistStaff.ElementAt(i).returnID() + "pour la table :" + idTable); StaffController.GetStaffController().MylistStaff.ElementAt(i).doStuff(idTable); } } } } }
public void callMaitreHotel(int idTable) { TableController.GetTableController().MyManualResetEvent.WaitOne(Timeout.Infinite); Console.WriteLine("Les clients vont payer" + idTable); int indexMaitreHotel = 0; bool test = false; for (int i = 0; (i < StaffController.GetStaffController().MylistStaff.Count) && (test == false); i++) { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() == "ControleurRestaurant.MaitreHotel") { test = true; indexMaitreHotel = i; } } if (test == false) { Console.WriteLine("le maitre d'hotel est occupé"); Thread.Sleep(10000); callMaitreHotel(idTable); } StaffController.GetStaffController().MylistStaff.ElementAt(indexMaitreHotel).doStuff2(idTable); }
public void commandeComplete(int idTable) { TableController.GetTableController().MyManualResetEvent.WaitOne(Timeout.Infinite); Console.WriteLine("commande complète pour la table :" + idTable); for (int i = 0; i < StaffController.GetStaffController().MylistStaff.Count; i++) { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() == "ControleurRestaurant.Serveur") { StaffController.GetStaffController().MylistStaff.ElementAt(i).doStuff(idTable); break; } } }
public void groupLeaves(int idTable) { TableController.GetTableController().MyManualResetEvent.WaitOne(Timeout.Infinite); Console.WriteLine("le groupe de la table " + idTable + " part"); for (int i = 0; i < StaffController.GetStaffController().MylistStaff.Count; i++) { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() == "ControleurRestaurant.Serveur") { if (StaffController.GetStaffController().MylistStaff.ElementAt(i).getAvailability() == Availability.waiting) { StaffController.GetStaffController().MylistStaff.ElementAt(i).doStuff2(idTable); break; } } } }
public void clientArrival() { TableController.GetTableController().MyManualResetEvent.WaitOne(Timeout.Infinite); Group groupe = new Group(); Console.WriteLine("j'ai accueilli un groupe de :" + groupe.MySizeGroup); int i = 0; while (StaffController.GetStaffController().MylistStaff.ElementAt(i).ToString() != "ControleurRestaurant.MaitreHotel") { i++; } Thread thread = new Thread(() => { StaffController.GetStaffController().MylistStaff.ElementAt(i).doStuff3(groupe); }); thread.Start(); appelClients(); }