//constructeur public Order(CustomerGroup group) { IdOrder = IdIncrementor; IdIncrementor++; CustomerGroup = group; Plats = group.Plats; foreach (string entry in Entriees) { Price = Price + 3; } foreach (string plat in Plats) { Price = Price + 5; } foreach (string dessert in Deserts) { Price = Price + 4; } WaitingDish = new List <Dish>(); Console.WriteLine("La commande " + IdOrder + " a été faite."); }
//prends la commande du client public void TakeOrder(CustomerGroup group) { Order order = new Order(group); group.StateGroup = "waiting"; Console.WriteLine("Serveur : J'ai pris la commande de " + group.IdCustomer); //On transmet la commande au Comptoir de commande Room.Instance.CurrentOrders.Add(order); Room.Instance.CounterOrder.Orders.Add(order); group.Order = order; }
//sert la commande au client public void ServeClient(CustomerGroup group) { if (group.StateGroup == "waiting") { Dish dish = group.Order.WaitingDish.First(); Room.Instance.CounterDishes.WaitingDishs.Remove(dish); Console.WriteLine("Waiter : Voici les " + dish.TypeDish); group.CurrentMeal = dish; group.Order.WaitingDish.Remove(dish); group.StateGroup = "eating"; } }
//thread du RankChief public void RankChiefWorkThread() { Console.WriteLine("Thread Serveur n° " + Id + " pret."); group1 = new CustomerGroup { StateGroup = "ordering" }; while (true) { if (ToDoRankChief.Count != 0) { Console.WriteLine("Chef de rang : je suis là"); theDelagate = ToDoRankChief.First().MyFunctionDelegate; theDelagate(ToDoRankChief.First().Group); ToDoRankChief.Remove(ToDoRankChief.First()); } Thread.Sleep(1000); } }
public void ServeClient(CustomerGroup group) { if (group.StateGroup == "waiting") { Dish dish = group.Order.WaitingDish.First(); Move("attente", "comptoire"); Room.Instance.CounterDishes.WaitingDishs.Remove(dish); Move("comptoire", "Table des clients"); Console.WriteLine("Waiter : Voici les " + dish.TypeDish); group.CurrentMeal = dish; group.Order.WaitingDish.Remove(dish); Move("Table client", "attente"); ToDoWaiter.Remove(ToDoWaiter.First()); group.StateGroup = "eating"; } else { Actions toDo = ToDoWaiter.First(); ToDoWaiter.Remove(toDo); ToDoWaiter.Add(toDo); } }
public Actions(actionDelegate action, CustomerGroup groups) { MyFunctionDelegate = action; Group = groups; }
public void CleanTable(CustomerGroup group) { //Aller a la Table group.StateGroup = "waitingMeal"; }