Beispiel #1
0
        //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.");
        }
Beispiel #2
0
        //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;
        }
Beispiel #3
0
        //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";
            }
        }
Beispiel #4
0
 //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);
     }
 }
Beispiel #5
0
 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);
     }
 }
Beispiel #6
0
 public Actions(actionDelegate action, CustomerGroup groups)
 {
     MyFunctionDelegate = action;
     Group = groups;
 }
Beispiel #7
0
 public void CleanTable(CustomerGroup group)
 {
     //Aller a la Table
     group.StateGroup = "waitingMeal";
 }