//TODO: It's not good solution if this method's return type is Egg. It should be void (or maybe bool). public Egg Receive(int chickenQuantity, int eggQuantity, object drink) { if (customerIndex == 8) { throw new Exception("All customers already gave order!"); } IMenuItem chickenMenuItem = null; if (chickenQuantity > 0) { chickenMenuItem = new Chicken(chickenQuantity); } tableRequests.Add(customerIndex, chickenMenuItem); IMenuItem eggMenuItem = null; if (eggQuantity > 0) { eggMenuItem = new Egg(eggQuantity); } tableRequests.Add(customerIndex, eggMenuItem); IMenuItem drinkMenuItem = null; if (drink is Drinks) { var d = (Drinks)drink; if (d == Drinks.Coca_Cola) { drinkMenuItem = new Coca_Cola(); } else if (d == Drinks.Juice) { drinkMenuItem = new Juice(); } else if (d == Drinks.RC_Cola) { drinkMenuItem = new RC_Cola(); } else if (d == Drinks.Tea) { drinkMenuItem = new Tea(); } } tableRequests.Add(customerIndex, drinkMenuItem); customerIndex++; if (eggMenuItem is Egg) { return((Egg)eggMenuItem); } return(null); }
public void Receive(string customerName, int chickenQuantity, int eggQuantity, object drink) { foreach (var _ in Enumerable.Range(1, chickenQuantity)) { tableRequests.Add <Chicken>(customerName); } foreach (var _ in Enumerable.Range(1, eggQuantity)) { tableRequests.Add <Egg>(customerName); } if (drink is Drinks) { var d = (Drinks)drink; if (d == Drinks.Coca_Cola) { tableRequests.Add <Coca_Cola>(customerName); } else if (d == Drinks.Juice) { tableRequests.Add <Juice>(customerName); } else if (d == Drinks.RC_Cola) { tableRequests.Add <RC_Cola>(customerName); } else if (d == Drinks.Tea) { tableRequests.Add <Tea>(customerName); } } sendedToCook = chickenQuantity > 0 || eggQuantity > 0 || drink != null; }