/// <summary> /// Call this method to print all Cx Pizza's in their current order /// </summary> /// <param name="username"></param> /// <param name="stores"></param> /// <param name="locationChoice"></param> /// <param name="currentOrder"></param> public static int printCxPrevOrdersAtCurrLoc(string username, string storeName, CurrentOrder curOrd) { Console.Clear(); ZZ_PrintLoggedInHeader.printStoreHeaderLoggedIn(username, storeName); // At each order location write all the pizza sizes, crust and price's in each order Console.WriteLine(" | user: <{0}> order totalled: <${1}> |", curOrd.userName, curOrd.currOrderTotal); Console.WriteLine(" |----------------------------------------"); // At each order give brief description of the pizza's ordered int pizzaLineCounter = 1; foreach (Pizza pOrd in curOrd.pizzasInOrder) { // give toppings Console.Write(" |{0}: {1} {2} pizza with", pizzaLineCounter, pOrd.pizzaSize, pOrd.getCrustChoice()); List <string> tops = pOrd.getChosenToppings(); foreach (string pTop in tops) { Console.Write(" <{0}>", pTop); } Console.WriteLine(); Console.WriteLine(" | ---- Pizza Cost ---- <{0}>", pOrd.getPriceOfPizza()); Console.WriteLine(" |"); pizzaLineCounter++; } Console.WriteLine(" |_________________________________________________________\n"); Console.WriteLine("1.<accept> 2.<deny>"); int res = -1; while (res < 1 || res > 2) { res = IntCheck.IntChecker(); if (res == -1) { continue; } } return(res); }
/// <summary> /// The main logic for Ordering a pizza type /// </summary> /// <param name="username"></param> /// <param name="stores"></param> /// <param name="locationChoice"></param> /// <param name="CurOrd"></param> // public void pizzaMakerChoice(string username, StoreRepository stores, int locationChoice, CurrentOrder CurOrd, OrderHistory LocationOrderHistory) public static void pizzaMakerChoice(string username, string storeName, CurrentOrder CurOrd) { int presetPizzaOptional = -1; while (presetPizzaOptional != 0) { ZZ_PrintLoggedInHeader.printStoreHeaderLoggedIn(username, storeName); Console.WriteLine(" | :: Choose Pizza Type ::"); Console.WriteLine(" | 1. : Hawaiian"); Console.WriteLine(" | 2. : Meat Lovers"); Console.WriteLine(" | 3. : Pepperoni"); Console.WriteLine(" | 4. : [MAKE YOUR OWN]"); Console.WriteLine(" | 0. : return to previous page..."); Console.WriteLine(" |_________________________________________________________"); presetPizzaOptional = IntCheck.IntChecker(); if (presetPizzaOptional == -1) { continue; } if (presetPizzaOptional == 4) { ZZ_PizzaSizes.printPizzaSizeChoice(username, storeName, "Custom Pizza"); Pizza CustomPizza = new Pizza(); // Comes with sauce and Cheese _f_PizzaSizeChoice.presetPizzaSizeChoice(username, storeName, CustomPizza, CurOrd, true); } // Customer chose Hawaiian preset pizza. else if (presetPizzaOptional == 1) { ZZ_PizzaSizes.printPizzaSizeChoice(username, storeName, "Hawaiian Pizza"); Pizza HawaiiPizza = new Pizza(); // Comes with sauce and Cheese HawaiiPizza.setDefaultToppings(); HawaiiPizza.addToppings(Pizza.Toppings.pineapple); HawaiiPizza.chooseCrust(Pizza.Crust.deepdish); _f_PizzaSizeChoice.presetPizzaSizeChoice(username, storeName, HawaiiPizza, CurOrd, false); } // Cx chose Meat Lovers else if (presetPizzaOptional == 2) { ZZ_PizzaSizes.printPizzaSizeChoice(username, storeName, "Meat Lovers"); Pizza MeatLovers = new Pizza(); // Comes with sauce and Cheese MeatLovers.setDefaultToppings(); MeatLovers.addToppings(Pizza.Toppings.pepperoni); MeatLovers.addToppings(Pizza.Toppings.sausage); MeatLovers.chooseCrust(Pizza.Crust.deepdish); _f_PizzaSizeChoice.presetPizzaSizeChoice(username, storeName, MeatLovers, CurOrd, false); } // Cx chose Pepperoni else if (presetPizzaOptional == 3) { ZZ_PizzaSizes.printPizzaSizeChoice(username, storeName, "Pepperoni"); Pizza Pepperoni = new Pizza(); // Comes with sauce and Cheese Pepperoni.setDefaultToppings(); Pepperoni.addToppings(Pizza.Toppings.pepperoni); Pepperoni.chooseCrust(Pizza.Crust.deepdish); _f_PizzaSizeChoice.presetPizzaSizeChoice(username, storeName, Pepperoni, CurOrd, false); } } }
/// <summary> /// Main Logic for initial choices a Cx can make when they login to the store /// </summary> /// <param name="username"></param> /// <param name="stores"></param> /// <param name="locationChoice"></param> /// <param name="CurOrd"></param> /// <param name="LocationOrderHistory"></param> public static void inStoreLogic(string username, string storeName, Abstractions.IRepositoryCustomer <Customer1> repo, Abstractions.IRepositoryOrders <Order1> orderRepo, Abstractions.IRepositoryPizza <Pizza1> pizzaRepo, Abstractions.IRepositoryStore <Store1> storeRepo) { var customer = repo.ReadInCustomer(); var order = orderRepo.ReadInOrder(); var pizza = pizzaRepo.ReadInPizza(); var store = storeRepo.ReadInStore(); // Create new order object to temporarily store the order before confirming it. CurrentOrder curOrder = new CurrentOrder(); int inStoreChoice = -1; while (inStoreChoice != 0) { ZZ_PrintLoggedInHeader.printStoreHeaderLoggedIn(username, storeName); Console.WriteLine(" |---------------------------------------------------------"); Console.WriteLine(" | 1. : Order a Pizza."); Console.WriteLine(" | 2. : Preview Your Current Order."); Console.WriteLine(" | 3. : [ADMIN] Preview All Orders at this Location."); Console.WriteLine(" | 0. : Return to Restaurant choice."); Console.WriteLine(" |_________________________________________________________"); inStoreChoice = IntCheck.IntChecker(); if (inStoreChoice == -1) { continue; } // Pizza Size if (inStoreChoice == 1) { _e_PizzaMakeChoice.pizzaMakerChoice(username, storeName, curOrder); } if (inStoreChoice == 2) { if (curOrder.pizzasInOrder.Count == 0) { Console.Clear(); Console.WriteLine("No pizza's ordered yet!"); Thread.Sleep(500); } else { inStoreChoice = 0; // trying to for customer back to store choice after checking out a pizza. // Ordering.CxCurrentOrder.getCustCurrentOrder(username, storeName, curOrder, customer); int num = CxOrdersAtLocation.printCxPrevOrdersAtCurrLoc(username, storeName, curOrder); if (num == 1) // try to read int choice { // Randomize and create new order. Random random = new Random(); int OrderID = random.Next(1000000000, 2000000000); var cx = customer.FirstOrDefault(Cx => Cx.Fname != null && Cx.Fname.Equals(username)); var stor = store.FirstOrDefault(S => S.StoreName.Equals(storeName)); // Tally the complete order first to get the total. double total = 0; foreach (var pi in curOrder.pizzasInOrder) { total += pi.getPriceOfPizza(); } // Create new order and submit. Order1 Or = new Order1() { CustId = cx.Id, OrderId = OrderID, StoreId = stor.Id, Price = (decimal)total }; orderRepo.CreateOrder(Or); foreach (var pie in curOrder.pizzasInOrder) { // char [] tops = Ordering.AddToppingsToPie.getAddToppingsToPie(pie); // Convert toppings int a singular decimal representing a bit flag int topSet = BitFlagConversion.convertFlagArrayToInt(tops); Pizza1 Cu = new Pizza1() { PizzaId = random.Next(1000000000, 2000000000), Toppings = topSet, Crust = pie.getCrustChoice(), Size = pie.getSizeChoice(), OrderId = OrderID, Price = (decimal)pie.getPriceOfPizza() }; pizzaRepo.CreatePizza(Cu); } } } } // Look at previous order history at current location if (inStoreChoice == 3) { Ordering.RestaurantOrdersEmployee.AllRestaurantOrders(orderRepo, storeRepo, username, storeName); } if (inStoreChoice == 0) { Console.WriteLine("returning to the previous page..."); Thread.Sleep(700); break; } } }