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