public void showOrderHistory() { Console.Clear(); showCustomerList(); CustomerQueries customerQuery = new CustomerQueries(); Console.WriteLine("Please Enter the ID of the Customer you would like to view History of"); string input = Console.ReadLine(); int.TryParse(input, out int result); if (customerQuery.existsCustomer(result)) { var orders = customerQuery.getHistory(result); var customer = customerQuery.getCustomer(result); if (orders.Count() == 0) { Console.WriteLine($"No history Found for {customer.FirstName} {customer.LastName}"); } else { Console.WriteLine($"{customer.FirstName} {customer.LastName}"); Console.WriteLine("StoreID\tOrder ID\tProduct\t\tQuantity\tTotal\t\tTime"); foreach (var o in orders) { double total = o.Product.Price * o.Count; Console.WriteLine($"{o.Product.Store.StoreID}\t{o.OrderID}\t\t" + $"{o.Product.Name}\t{o.Count}\t\t{total}\t\t{o.Time}"); } } Console.WriteLine("Press enter to return to the menu"); Console.ReadLine(); } }
public void placeOrder() { using (P0DbContext db = new P0DbContext()){ int storeID = 0; Order newOrder = new Order(); CustomerQueries customers = new CustomerQueries(); StoreQueries stores = new StoreQueries(); #region get storeID Console.WriteLine("Please enter a StoreID for the location you would like to place your order at"); string input = Console.ReadLine(); bool invalid = true; int result; while (invalid) { if (!int.TryParse(input, out result) || !stores.existsStore(result)) { Console.WriteLine("Invalid Input, Please try again."); input = Console.ReadLine(); } else { storeID = result; invalid = false; } } #endregion #region get customerID Console.WriteLine("Please enter the CustomerID of whose placing the order"); input = Console.ReadLine(); invalid = true; while (invalid) { if (!int.TryParse(input, out result) || !customers.existsCustomer(result)) { Console.WriteLine("Invalid Input, Please try again."); input = Console.ReadLine(); } else { newOrder.CustomerID = result; invalid = false; } } #endregion #region display products ProductQueries products = new ProductQueries(); var productList = products.getProducts(storeID); Console.Clear(); Console.WriteLine("ID\tStore\t\tName\t\tInventory\tPrice"); foreach (var p in productList) { Console.WriteLine($"{p.ProductID}\t{p.Store.Location}\t{p.Name}" + $"\t{p.Inventory}\t\t{p.Price}"); } #endregion bool ordering = true; int time = 0; while (ordering) { #region productID Console.WriteLine("Please enter the productID what you want"); input = Console.ReadLine(); invalid = true; while (invalid) { if (!int.TryParse(input, out result) || !products.existsProduct(result)) { Console.WriteLine("Invalid Input, Please try again."); input = Console.ReadLine(); } else { newOrder.ProductID = result; invalid = false; } } #endregion #region count Console.WriteLine("Please enter the amount that you want"); input = Console.ReadLine(); invalid = true; while (invalid) { if (!int.TryParse(input, out result) || !products.checkCount(newOrder.ProductID, result)) { Console.WriteLine("Invalid Input, Please try again."); input = Console.ReadLine(); } else { newOrder.Count = result; invalid = false; } } #endregion #region keep ordering do { Console.WriteLine("Would you like to keep ordering? Yes : No"); input = Console.ReadLine(); } while (!(input == "Yes" || input == "No")); if (input == "Yes") { ordering = true; } else { ordering = false; } time++; if (time == 1) { newOrder.Time = DateTime.Now; } db.Add <Order>(newOrder); db.SaveChanges(); StoreQueries update = new StoreQueries(); update.placeOrder(newOrder); newOrder.OrderID++; #endregion } Console.WriteLine("Press enter to return to the menu"); Console.ReadLine(); } }