Exemplo n.º 1
0
        public void ProcessOrder()
        {
            int numberOfRestaurants = ListOfRestaurants.Count;
            List <RestaurantMeal.MealType> mealTypesKeys = OrderWishList.MealsToOrder.Keys.ToList();

            int i = 0;

            while (i < numberOfRestaurants && !GoalIsSatisfied())
            {
                Restaurant            restaurant   = ListOfRestaurants.ElementAt(i);
                RestaurantSignature   signature    = restaurant.Signature;
                MealsReadyForDelivery mealsOrdered = new MealsReadyForDelivery(signature);


                foreach (RestaurantMeal.MealType typeX in mealTypesKeys)
                {
                    int expectedNumOfMeals = OrderWishList.MealsToOrder[typeX];
                    int actualNumOfMeals   = restaurant.HandleOrder(typeX, expectedNumOfMeals);

                    if (actualNumOfMeals > 0)
                    {
                        mealsOrdered.ReadyMeals.Add(typeX, actualNumOfMeals);
                        OrderWishList.MealsToOrder[typeX] = expectedNumOfMeals - actualNumOfMeals;
                    }
                }


                if (mealsOrdered.ReadyMeals.Count > 0)
                {
                    TotalOrders.Add(mealsOrdered);
                }

                i++;
            }
        }
 public MealsReadyForDelivery(RestaurantSignature signature,
                              Dictionary <RestaurantMeal.MealType, int> readyMeals) : this(signature)
 {
     ReadyMeals = readyMeals;
 }
 public MealsReadyForDelivery(RestaurantSignature signature)
 {
     ReadyMeals = new Dictionary <RestaurantMeal.MealType, int>();
     Signature  = signature;
 }
Exemplo n.º 4
0
 public Restaurant(string name, int rating, int vegMealNum,
                   int gluten3MealNum, int nut3MealNum, int fish3MealNum, int totalMealNum)
 {
     Signature = new RestaurantSignature(name, rating);
     Menu      = new RestaurantMenu(vegMealNum, gluten3MealNum, nut3MealNum, fish3MealNum, totalMealNum);
 }