public static User UserConsole(User user, int uID, PizzaStore.Storing.PizzaStoreDBContext db) { Store location = new Store(); bool running = true; int sID = 0; Console.WriteLine($"\n------------------------\nWelcome, {user.Name.firstName}!\n------------------------\n"); Console.WriteLine($"Current Location: {location.Name}"); if (location.Name.Equals("None")) { Console.WriteLine("Choose a Store: "); int i; for (i = 0; i < db.Store.ToList().Count; i++) { Console.WriteLine($"{i+1}. {db.Store.ToList()[i].Name}"); } Console.WriteLine($"{i+1}. Cancel"); int input = Convert.ToInt32(Console.ReadLine()); if (input < i + 1 && input > 0) { location.Name = db.Store.ToList()[input - 1].Name; sID = input; } user = updateUser(user, uID, db); } while (running) { Console.WriteLine("\n=====Main Menu====="); Console.WriteLine($"Current Location: {location.Name}\n"); Console.WriteLine("1. List Locations"); Console.WriteLine("2. Select Location"); Console.WriteLine("3. View Pricing Info"); Console.WriteLine("4. Place an Order"); Console.WriteLine("5. See Order History"); Console.WriteLine("6. Exit"); string input = Console.ReadLine(); switch (input) { case "1": Console.WriteLine($"-----Available Locations-----"); for (int k = 0; k < db.Store.ToList().Count; k++) { Console.WriteLine($"{k+1}. {db.Store.ToList()[k].Name}"); } Console.WriteLine($"-----------------------------"); break; case "2": Console.WriteLine("Choose a Store: "); int i; for (i = 0; i < db.Store.ToList().Count; i++) { Console.WriteLine($"{i+1}. {db.Store.ToList()[i].Name}"); } Console.WriteLine($"{i+1}. Cancel"); int input2 = Convert.ToInt32(Console.ReadLine()); if (input2 <= i + 1 && input2 > 0) { location.Name = db.Store.ToList()[input2 - 1].Name; sID = input2; } break; case "3": Console.WriteLine("===Pricing Information==="); Console.WriteLine("Preset Pizzas are also priced based on this information\n"); Console.WriteLine("Size Base Prices:"); Console.WriteLine(" Small: $4"); Console.WriteLine(" Medium: $7"); Console.WriteLine(" Large: $9\n"); Console.WriteLine("Topping Prices:"); Console.WriteLine(" 1 Topping: $0.50"); Console.WriteLine(" 2 Toppings: $0.75"); Console.WriteLine(" 3 Toppings: $1"); Console.WriteLine(" 4+ Toppings: $1 + $0.50 per additional topping after 3\n"); Console.WriteLine("Crust Prices:"); Console.WriteLine(" Hand Tossed: Free"); Console.WriteLine(" Thin: Free"); Console.WriteLine(" Stuffed: $0.75\n"); break; case "4": PlaceOrder(user, uID, db, sID, location.Name); break; case "5": int j; for (j = 0; j < user.Orders.Count; j++) { Console.WriteLine($"Order #{j+1}:"); Console.WriteLine($" Date Ordered: {user.Orders[j].DateOrdered.ToString()}"); Console.WriteLine($" Number of Pizzas: {user.Orders[j].Pizzas.Count}"); Console.WriteLine($" Store: {user.Orders[j].store.Name}\n"); } bool running2 = true; while (running2) { Console.WriteLine($"Type the order number you wish to view or type back to go back."); input = Console.ReadLine(); switch (input) { case "back": running2 = false; break; default: Console.WriteLine($"-- Store: {user.Orders[Convert.ToInt32(input) - 1].store.Name} --"); Console.WriteLine(user.Orders[Convert.ToInt32(input) - 1].getPizzaList()); Console.WriteLine($"-- TOTAL: ${user.Orders[Convert.ToInt32(input) -1].getPrice()}"); break; } } break; case "6": running = false; break; default: break; } } return(user); }
/* public static void StoreConsole(Store store, PizzaStore.Storing.PizzaStoreDBContext db, int sID){ * * bool running = true; * * Console.WriteLine($"\n------------------------\nWelcome, {store.Name}!\n------------------------\n"); * * store.Orders = updateStore(store,sID); * * * * } */ public static User updateUser(User user, int uID, PizzaStore.Storing.PizzaStoreDBContext db) { //Find user foreach (var us in db.User.ToList()) { if (uID == us.LoginId) { user.Name.firstName = us.FirstName; user.Name.lastName = us.LastName; //Find user orders foreach (var ord in db.Order.ToList()) { if (uID == ord.UserId) { Store store = new Store(); foreach (var s in db.Store.ToList()) { if (ord.StoreId == s.StoreId) { store.Name = s.Name; break; } } List <Pizza> pizzas = new List <Pizza>(); //Make Pizza, then add it to the List of Pizzas //Find order pizzas using junction table Order.Pizza foreach (var p in db.PizzaJunction.ToList()) { if (ord.OrderId == p.OrderId) { //Find Pizza referenced by Order.Pizza using Pizza.Pizza table foreach (var p1 in db.Pizza.ToList()) { if (p.PizzaId == p1.PizzaId) { //Create new Pizza to add to order Pizza piz = new Pizza(); piz.Name = p1.Name; //Add Crust to Pizza foreach (var c in db.Crust.ToList()) { if (p1.CrustId == c.CrustId) { piz.Crust = new Crust(c.Name); break; } } //Add Size to Pizza foreach (var s in db.Size.ToList()) { if (p1.SizeId == s.SizeId) { piz.Size = new Size(s.Name); break; } } //Find Toppings foreach (var pt in db.PizzaTopping.ToList()) { if (pt.PizzaId == p1.PizzaId) { //Add Toppings foreach (var top in db.Topping.ToList()) { if (top.ToppingId == pt.ToppingId) { piz.addTopping(new Topping(top.Name)); break; } } } } pizzas.Add(piz); } } } } user.Orders.Add(new Order(pizzas, Convert.ToDateTime(ord.DateOrdered), (bool)ord.Placed, (bool)ord.Completed, store)); } } } } return(user); }
// public static Store SelectStore(Store store, PizzaStore.Storing.PizzaStoreDBContext db){ // Console.WriteLine("Choose a Store: "); // int i; // for(i = 0; i < db.Store.ToList().Count; i++){ // Console.WriteLine($"{i+1}. {db.Store.ToList()[i].Name}"); // } // Console.WriteLine($"{i+1}. Cancel"); // int input = Convert.ToInt32(Console.ReadLine()); // if (input < i+1 && input > 0){ // store.Name = db.Store.ToList()[i-1].Name; // } // return store; // } public static void PlaceOrder(User user, int uID, PizzaStore.Storing.PizzaStoreDBContext db, int sID, string storeName) { Order order = new Order(); order.store = new Store() { Name = storeName }; bool running = true; while (running) { Console.WriteLine("=== Editing Order ==="); Console.WriteLine("1. Choose Preset Pizza"); Console.WriteLine("2. Create Custom Pizza"); Console.WriteLine("3. View Order"); Console.WriteLine("4. Edit Pizza"); Console.WriteLine("5. Remove Pizza"); Console.WriteLine("6. Checkout"); Console.WriteLine("7. Exit (Order will be lost)"); string input = Console.ReadLine(); switch (input) { case "1": Console.WriteLine("=== Choose Preset Pizza ==="); Console.WriteLine("1. Meat Lovers (Hand tossed, Pepperoni, Ham, Sausage)"); Console.WriteLine("2. Fred Special (Hand tossed, Ham, Pineapple)"); Console.WriteLine("3. Jeremy Special (Thin, Bacon, Pineapple)"); Console.WriteLine("4. Deluxe (Hand Tossed, Pepperoni, Sausage, Mushroom, Green Pepper, Onion)"); string input2 = Console.ReadLine(); Pizza pizza; switch (input2) { case "1": // Meat Lovers if (order.Pizzas.Count < 50) { pizza = order.CreatePizza(); pizza.Name = "Meat Lover's"; pizza.addTopping(new Topping("pepperoni")); pizza.addTopping(new Topping("ham")); pizza.addTopping(new Topping("sausage")); pizza.Crust = new Crust("handtossed"); Console.WriteLine("--Choose a size--"); Console.WriteLine("1. Small"); Console.WriteLine("2. Medium"); Console.WriteLine("3. Large"); string input5 = Console.ReadLine(); switch (input5) { case "1": pizza.Size = new Size("small"); break; case "2": pizza.Size = new Size("medium"); break; case "3": pizza.Size = new Size("large"); break; } } else { Console.WriteLine("You have reached the maximum number of pizzas. The pizza has not been added."); } break; case "2": //Fred Special if (order.Pizzas.Count < 50) { pizza = order.CreatePizza(); pizza.Name = "Fred Special"; pizza.addTopping(new Topping("ham")); pizza.addTopping(new Topping("pineapple")); pizza.Crust = new Crust("handtossed"); Console.WriteLine("--Choose a size--"); Console.WriteLine("1. Small"); Console.WriteLine("2. Medium"); Console.WriteLine("3. Large"); string input6 = Console.ReadLine(); switch (input6) { case "1": pizza.Size = new Size("small"); break; case "2": pizza.Size = new Size("medium"); break; case "3": pizza.Size = new Size("large"); break; } } else { Console.WriteLine("You have reached the maximum number of pizzas. The pizza has not been added."); } break; case "3": // Jeremy Special if (order.Pizzas.Count < 50) { pizza = order.CreatePizza(); pizza.Name = "Jeremy Special"; pizza.addTopping(new Topping("bacon")); pizza.addTopping(new Topping("pineapple")); pizza.Crust = new Crust("handtossed"); Console.WriteLine("--Choose a size--"); Console.WriteLine("1. Small"); Console.WriteLine("2. Medium"); Console.WriteLine("3. Large"); string input7 = Console.ReadLine(); switch (input7) { case "1": pizza.Size = new Size("small"); break; case "2": pizza.Size = new Size("medium"); break; case "3": pizza.Size = new Size("large"); break; } } else { Console.WriteLine("You have reached the maximum number of pizzas. The pizza has not been added."); } break; case "4": // Deluxe if (order.Pizzas.Count < 50) { pizza = order.CreatePizza(); pizza.Name = "Deluxe"; pizza.addTopping(new Topping("bacon")); pizza.addTopping(new Topping("pineapple")); pizza.Crust = new Crust("handtossed"); Console.WriteLine("--Choose a size--"); Console.WriteLine("1. Small"); Console.WriteLine("2. Medium"); Console.WriteLine("3. Large"); string input8 = Console.ReadLine(); switch (input8) { case "1": pizza.Size = new Size("small"); break; case "2": pizza.Size = new Size("medium"); break; case "3": pizza.Size = new Size("large"); break; } } else { Console.WriteLine("You have reached the maximum number of pizzas. The pizza has not been added."); } break; default: break; } break; case "2": //Create Custom Pizza Pizza tempPizza = new Pizza(new List <Topping>(), new Crust("handtossed"), new Size("medium"), "Custom"); Console.WriteLine("===Current Pizza==="); tempPizza = EditPizza(tempPizza); if (tempPizza.Size.pSize.Equals("") || tempPizza.Crust.Name.Equals("") || tempPizza.Toppings.Count == 0) { Console.WriteLine("Custom Pizza creation unsuccessful."); } else { order.Pizzas.Add(tempPizza); Console.WriteLine("Custom Pizza creation successful!"); } break; case "3": //View Order Console.WriteLine(order.getPizzaList()); Console.WriteLine($"Total: ${order.getPrice()}"); break; case "4": //Edit Pizza Console.WriteLine("Choose a pizza to edit:"); int i; for (i = 0; i < order.Pizzas.Count; i++) { Console.WriteLine($"{i+1}. {order.Pizzas[i].Name}"); } Console.WriteLine($"{i+1}. Cancel"); int input3 = Convert.ToInt32(Console.ReadLine()); if (input3 < i + 1 && input3 > 0) { order.Pizzas[i - 1] = EditPizza(order.Pizzas[i - 1]); } break; case "5": //Remove Pizza Console.WriteLine("Choose a pizza to remove:"); int j; for (j = 0; j < order.Pizzas.Count; j++) { Console.WriteLine($"{j+1}. {order.Pizzas[j].Name}"); } Console.WriteLine($"{j+1}. Cancel"); int input4 = Convert.ToInt32(Console.ReadLine()); //j = number of pizzas if (input4 - 1 < j && input4 > 0) { order.Pizzas.RemoveAt(input4 - 1); Console.WriteLine($"Pizza #{input4} removed."); } break; case "6": //Checkout if (order.Pizzas.Count == 0) { Console.WriteLine("Order was empty, so it was canceled."); } else { order.PlaceOrder(); //Add to database PizzaRepository pr = new PizzaRepository(); pr.AddOrder(order, sID, uID); user.Orders.Add(order); } running = false; break; case "7": //Exit Console.WriteLine("Order Canceled."); running = false; break; default: break; } } }
static void Main(string[] args) { var db = new PizzaStore.Storing.PizzaStoreDBContext(); Console.WriteLine("Welcome to the PizzaStore Application!"); bool running = true; while (running) { Console.WriteLine("Please select an option:"); Console.WriteLine("1. User Login"); Console.WriteLine("2. Store Login"); Console.WriteLine("3. Exit"); string input = Console.ReadLine(); switch (input) { case "1": User user = new User(); Console.WriteLine("Enter the username: "******"Enter the password: "******"2": /* Store store = new Store(); * * //store login * Console.WriteLine("Enter the store username: "******"Enter the password: "******"3": running = false; break; default: break; } } }