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"); }