private int FulfillOrder(EBurgerType burgerType, User client, EExtraIngredients extraIngredients = EExtraIngredients.BASIC) { string name = ""; float price = 0; if (burgerType == EBurgerType.Classic) { name = Constants.ClassicBurgerName; price = Constants.ClassicBurgerPrice; } if (burgerType == EBurgerType.Deluxe) { name = Constants.DeluxeBurgerName; price = Constants.DeluxeBurgerPrice; } Kitchen kitchen; switch (burgerType) { case EBurgerType.Classic: { kitchen = new ClassicBurgerFactory(); var burger = kitchen.GetBurger(name, price); var decoratedBurger = AddExtraIngredients(burger, extraIngredients); _orderedBurgers.Add(Kitchen.LastId, decoratedBurger); Console.WriteLine($"Classic burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}"); Console.WriteLine("It will be serverd in a short time..."); ServeBurger(client, Kitchen.LastId); return(Kitchen.LastId); } case EBurgerType.Deluxe: { kitchen = new DeluxeBurgerFactory(); var burger = kitchen.GetBurger(name, price); var decoratedBurger = AddExtraIngredients(burger, extraIngredients); _orderedBurgers.Add(Kitchen.LastId, decoratedBurger); Console.WriteLine($"Deluxe burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}"); ApplicationMode.Instance.sendAction($"Deluxe burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}"); Console.WriteLine("It will be serverd in a short time..."); ServeBurger(client, Kitchen.LastId); return(Kitchen.LastId); } default: return(-1); } }
public ClassicBurger(int id, string name, float price) : base(id, name, price) { Type = EBurgerType.Classic; }
public DeluxeBurger(int id, string name, float price) : base(id, name, price) { Type = EBurgerType.Deluxe; }
private void PlaceOrder(User client) { int intTemp = 0; EBurgerType eBurgerType = EBurgerType.Classic; do { Console.WriteLine("What would you like to eat?: \n" + "1 -> ClassicBurger\n" + "2 -> Deluxe Burger\n"); intTemp = Convert.ToInt32(Console.ReadLine()); switch (intTemp) { case 1: eBurgerType = EBurgerType.Classic; break; case 2: eBurgerType = EBurgerType.Deluxe; break; default: Console.WriteLine("We don't have that type of burger. Maybe try something from the menu?"); break; } } while (intTemp != 1 && intTemp != 2); Console.WriteLine("Excellent choice! Do you want to add something extra to the burger? \n" + "1 -> Yes\n" + "2 -> No\n"); intTemp = Convert.ToInt32(Console.ReadLine()); switch (intTemp) { case 1: Console.WriteLine("What kind of extra would you like? \n" + "1 -> Drink\n" + "2 -> Sauce\n" + "3 -> Vegetable"); int extraOption = 0; do { try { extraOption = Convert.ToInt32(Console.ReadLine()); switch (extraOption) { case 1: FulfillOrder(eBurgerType, client, EExtraIngredients.DRINK); break; case 2: FulfillOrder(eBurgerType, client, EExtraIngredients.SAUCE); break; case 3: FulfillOrder(eBurgerType, client, EExtraIngredients.VEGETABLE); break; default: Console.WriteLine("Sorry, we're not adding weird stuff to our burgers since the coronavirus outbreak"); break; } } catch (Exception e) { Console.WriteLine(e.Message); } } while (intTemp != 1 && intTemp != 2 && intTemp != 3); break; case 2: FulfillOrder(eBurgerType, client); break; default: Console.WriteLine("I'll take that as a no."); FulfillOrder(eBurgerType, client); break; } }