Exemple #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 void GetListOfRestaurants()
 {
     ListOfRestaurants = _apiCall   // get list of all restaurants for the given property
                         .GetListOfRestaurants(Destination, Property)
                         .Select(r => r.Name)
                         .ToList();
     ListOfRestaurants.Add("Other");
 }