public void EditAddress(Library.Address address) { if (_db.Address.Find(address.AddressId) != null) { _db.Address.Update(AddressMapper.Map(address)); } }
public static void Main() { var optionsBuilder = new DbContextOptionsBuilder <PizzaOrdersContext>(); optionsBuilder.UseSqlServer(SecretConfiguration.ConnectionString); var options = optionsBuilder.Options; var dbContext = new PizzaOrdersContext(options); UserRepository userRepository = new UserRepository(dbContext); OrderRepository orderRepository = new OrderRepository(dbContext); ProductsRepository productsRepository = new ProductsRepository(dbContext); AddressRepository addressRepository = new AddressRepository(dbContext); StoreRepository storeRepository = new StoreRepository(dbContext); Console.WriteLine("Welcome to Ita D'Pizza!"); List <Order> orderAddressList = orderRepository.DisplayOrderHistoryAddress(1).ToList(); Console.WriteLine(orderAddressList); List <User> userList = userRepository.GetUsers().ToList(); bool bigLoop = true; while (bigLoop == true) { for (int i = 1; i < userList.Count() + 1; i++) { User userlist = userList[i - 1]; string userFirstNameString = $"{i}: \"{userlist.firstName}\""; string userLastNameString = $"\"{userlist.lastName}\""; Console.Write(userFirstNameString + " "); Console.Write(userLastNameString); Console.WriteLine(); } Console.WriteLine("Please sign in."); Console.WriteLine("To exit, type 'exit' as either a first name or a last name"); Console.Write("First Name: "); string signInFName = Console.ReadLine(); Console.Write("Last Name: "); string signInLName = Console.ReadLine(); if (signInFName.ToLower() == "exit" || signInLName.ToLower() == "exit") { break; } // exception handling for not a valid sign in name // also include way to exit the console app List <User> signedInList = userRepository.GetUsersByName(signInFName, signInLName).ToList(); User signedIn = signedInList[0]; bool smallLoop = true; while (smallLoop == true) { Console.WriteLine("What do you want to do?"); Console.WriteLine("o - place an order"); Console.WriteLine("u - look up a user"); Console.WriteLine("h - display order history"); Console.WriteLine("x - go back to login screen"); string choice = Console.ReadLine(); if (choice == "o") { List <Order> orderSuggestList = orderRepository.DisplayOrderHistoryUser(signedIn.userID).OrderByDescending(o => o.orderDate).ToList(); Order orderSuggest = orderSuggestList[0]; Console.WriteLine("So you want to place an order?"); Console.WriteLine("Your most recent order on record is "); string orderSuggestID = $"\"{"Order ID: " + orderSuggest.orderID}\""; string orderSuggestTotalCost = $"\"{"Total Cost: " + orderSuggest.totalCost}\""; string orderSuggestStoreID = $"\"{"Store ID: " + orderSuggest.storeId}\""; Console.WriteLine(orderSuggestID); Console.Write("Products "); // what is there is no previous order? simple loop/conditional // still need to figure out how to populate orderProducts from OrderHeader List <Product> productListToPrint = orderRepository.GetProductsOfOrderByID(orderSuggest.orderID).ToList(); foreach (var item in productListToPrint) { Console.Write(item.productName + " "); } Console.WriteLine(orderSuggestTotalCost); Console.WriteLine(orderSuggestStoreID); Console.WriteLine("Would you like to resubmit this order? Type 'yes' or 'no'."); string resubmit = Console.ReadLine(); while (!(resubmit.ToLower() == "yes" || resubmit.ToLower() == "no")) { Console.WriteLine("Not an available choice."); Console.WriteLine("Would you like to resubmit this order? Type 'yes' or 'no'."); resubmit = Console.ReadLine(); } if (resubmit.ToLower() == "yes") { Order order1 = new Order(); order1.orderAddressID = orderSuggest.orderAddressID; order1.userID = signedIn.userID; order1.totalCost = 0; order1.orderDate = DateTime.Now; order1.storeId = orderSuggest.storeId; List <Product> listOfProductsToAdd = orderRepository.GetProductsOfOrderByID(orderSuggest.orderID).ToList(); foreach (var item in listOfProductsToAdd) { order1.AddToOrder(item); } Console.WriteLine("Successfully recreated the order"); Console.WriteLine("Your order details"); orderRepository.InsertOrder(order1); orderRepository.Save(); orderRepository.DisplayOrderDetailsByOrderID(orderRepository.getLastId()); } else if (resubmit.ToLower() == "no") { Console.WriteLine("Okay, we will build a new order for you."); // Instantiating new order with default values Order order1 = new Order(); order1.orderAddressID = orderSuggest.orderAddressID; order1.userID = signedIn.userID; order1.totalCost = 0; order1.orderDate = DateTime.Now; order1.storeId = orderSuggest.storeId; // displaying available addresses Console.WriteLine("Here are our available addresses."); List <Library.Address> addressList = addressRepository.GetAddresses().ToList(); for (int i = 1; i < addressList.Count() + 1; i++) { Library.Address addresslist = addressList[i - 1]; string addressIdString = $"{i}: \"{addresslist.addressID}\""; string addressLine1String = $"{i}: \"{addresslist.addressLine1}\""; string addressLine2String = $"{i}: \"{addresslist.addressLine2}\""; string addressCityString = $"{i}: \"{addresslist.city}\""; string addressStateString = $"{i}: \"{addresslist.state}\""; string addressZipCodeString = $"{i}: \"{addresslist.zipCode}\""; Console.Write(addressIdString + " "); Console.Write(addressLine1String + " "); Console.Write(addressLine2String + " "); Console.Write(addressCityString + " "); Console.Write(addressStateString + " "); Console.WriteLine(addressZipCodeString); } // Parsing addressID choice Console.WriteLine("Please type the Address ID of the address you would like the order to be delivered to."); string addressAddChoice = Console.ReadLine(); bool parseSuccessAddress = Int32.TryParse(addressAddChoice, out int addressAddInt); while (parseSuccessAddress == false || (parseSuccessAddress == true && addressAddInt > addressList.Count())) { Console.WriteLine("Not a valid choice. Please enter a valid integer."); Console.WriteLine("Please type the Product ID of the product you would like to add to your order."); addressAddChoice = Console.ReadLine(); parseSuccessAddress = Int32.TryParse(addressAddChoice, out addressAddInt); } // adding choice to order order1.orderAddressID = addressAddInt; ////////////////////////////////////////////////////////////////////////////////////////// // displaying available stores Console.WriteLine("Here are our available stores."); List <Library.Store> storeList = storeRepository.GetStores().ToList(); for (int i = 1; i < addressList.Count() + 1; i++) { Library.Store storelist = storeList[i - 1]; string storeIDString = $"{i}: \"{storelist.storeID}\""; string storeAddressLine1String = $"{i}: \"{storelist.sAddressLine1}\""; string storeAddressLine2String = $"{i}: \"{storelist.sAddressLine2}\""; string storeCityString = $"{i}: \"{storelist.sCity}\""; string storeStateString = $"{i}: \"{storelist.sState}\""; string storeZipCodeString = $"{i}: \"{storelist.sZipCode}\""; Console.Write(storeIDString + " "); Console.Write(storeAddressLine1String + " "); Console.Write(storeAddressLine2String + " "); Console.Write(storeCityString + " "); Console.Write(storeStateString + " "); Console.WriteLine(storeZipCodeString); } // Parsing storeID choice Console.WriteLine("Please type the Store ID of the store you would like to order from"); string storeAddChoice = Console.ReadLine(); bool parseSuccessStore = Int32.TryParse(storeAddChoice, out int storeAddInt); while (parseSuccessStore == false || (parseSuccessStore == true && storeAddInt > storeList.Count())) { Console.WriteLine("Not a valid choice. Please enter a valid integer."); Console.WriteLine("Please type the Store ID of the store you would like to order from."); storeAddChoice = Console.ReadLine(); parseSuccessStore = Int32.TryParse(storeAddChoice, out storeAddInt); } // adding choice to order order1.storeId = storeAddInt; //////////////////////////////////////////////////////////////// // displaying available products Console.WriteLine("Here are our available products."); List <Product> productList = productsRepository.GetProducts().ToList(); for (int i = 1; i < productList.Count() + 1; i++) { Product productlist = productList[i - 1]; string productIdString = $"{i}: \"{productlist.productName}\""; string productNameString = $"{i}: \"{productlist.productName}\""; Console.Write(productIdString + " "); Console.WriteLine(productNameString); } // deciding if user wants to add a product to order Console.WriteLine("Would you like to add a product to your order? Type 'yes' or 'no'."); string addAProduct = Console.ReadLine(); while (!(addAProduct.ToLower() == "yes" || addAProduct.ToLower() == "no")) { Console.WriteLine("Not an available choice."); Console.WriteLine("Would you like to add a product to your order? Type 'yes' or 'no'."); addAProduct = Console.ReadLine(); } // adding product to order if (addAProduct.ToLower() == "yes") { while (addAProduct.ToLower() == "yes") { // getting user input for which product to add Console.WriteLine("Please type the Product ID of the product you would like to add to your order."); string productAddChoice = Console.ReadLine(); bool parseSuccessProduct = Int32.TryParse(productAddChoice, out int productAddInt); while (parseSuccessProduct == false || (parseSuccessProduct == true && productAddInt > productList.Count())) { Console.WriteLine("Not a valid choice. Please enter a valid integer."); Console.WriteLine("Please type the Product ID of the product you would like to add to your order."); productAddChoice = Console.ReadLine(); parseSuccessProduct = Int32.TryParse(productAddChoice, out productAddInt); } Product productToAdd = productsRepository.GetProductByID(productAddInt); order1.AddToOrder(productToAdd); // logic to enable indefinite product adding Console.WriteLine("Would you like to add another product to your order? Type 'yes' or 'no'."); addAProduct = Console.ReadLine(); while (!(addAProduct.ToLower() == "yes" || addAProduct.ToLower() == "no")) { Console.WriteLine("Not an available choice."); Console.WriteLine("Would you like to add another product to your order? Type 'yes' or 'no'."); addAProduct = Console.ReadLine(); } } // Inserting, Saving and displaying order orderRepository.InsertOrder(order1); orderRepository.Save(); orderRepository.DisplayOrderDetailsByOrderID(orderRepository.getLastId()); } } } else if (choice == "u") { Console.WriteLine("So you want to look up a user?"); Console.WriteLine("How do you want to look up?"); Console.WriteLine("n - Look up by name"); Console.WriteLine("i - Look up by user ID"); string lookUpChoice = Console.ReadLine(); while (!(lookUpChoice.ToLower() == "n" || lookUpChoice.ToLower() == "i")) { Console.WriteLine("Invalid choice. Please select either 'n' or 'i'."); Console.WriteLine("How do you want to look up?"); Console.WriteLine("n - Look up by name"); Console.WriteLine("i - Look up by user ID"); lookUpChoice = Console.ReadLine(); } if (lookUpChoice.ToLower() == "n") { Console.WriteLine("To look up by name, type the first name and last name."); //Console.WriteLine("If you only want to search by first name, leave last name blank."); //Console.WriteLine("If you only want to search by last name, leave first name blank."); Console.Write("First Name: "); string inputFirstNameSearch = Console.ReadLine(); Console.Write("Last Name: "); string inputLastNameSearch = Console.ReadLine(); List <User> returnedUsers = userRepository.GetUsersByName(inputFirstNameSearch, inputLastNameSearch).ToList(); for (int i = 1; i < returnedUsers.Count() + 1; i++) { int displayUserID = returnedUsers[i - 1].userID; string displayUserFirstName = returnedUsers[i - 1].firstName; string displayUserLastName = returnedUsers[i - 1].lastName; Console.WriteLine(displayUserID + " " + displayUserFirstName + " " + displayUserLastName); } } //else if (lookUpChoice.ToLower() == "i") //{ // Console.WriteLine("To look up by user ID, type the user ID"); // Console.Write("User ID: "); // string inputUserIDSearch = Console.ReadLine(); // bool parseSuccess = Int32.TryParse(inputUserIDSearch, out int userIdSearchInt); // while (parseSuccess == false) // { // Console.WriteLine("Not a valid choice. Please enter a valid integer."); // Console.WriteLine("To look up by user ID, type the user ID"); // Console.Write("User ID: "); // inputUserIDSearch = Console.ReadLine(); // parseSuccess = Int32.TryParse(inputUserIDSearch, out userIdSearchInt); // } //} } else if (choice == "h") { Console.WriteLine("So you want to look up order history."); Console.WriteLine("How do you want to look up orders?"); Console.WriteLine("l - location"); Console.WriteLine("u - user"); Console.WriteLine("s - sort all"); string lookUpChoice = Console.ReadLine(); while (!(lookUpChoice.ToLower() == "l" || lookUpChoice.ToLower() == "u" || lookUpChoice.ToLower() == "s")) { Console.WriteLine("Not a valid choice. Please type either 'l', 'u', or 's'."); Console.WriteLine("How do you want to look up orders?"); Console.WriteLine("l - location"); Console.WriteLine("u - user"); Console.WriteLine("s - sort all"); lookUpChoice = Console.ReadLine(); } if (lookUpChoice.ToLower() == "l") { Console.WriteLine("Please provide store ID"); Console.Write("Store ID: "); string storeIdToLookUp = Console.ReadLine(); bool parseSuccess = Int32.TryParse(storeIdToLookUp, out int storeIdToLookUpInt); while (parseSuccess == false) { Console.WriteLine("Not a valid choice. Please enter a valid Store ID."); Console.WriteLine("Please provide Store ID"); Console.Write("Store ID: "); storeIdToLookUp = Console.ReadLine(); parseSuccess = Int32.TryParse(storeIdToLookUp, out storeIdToLookUpInt); } List <Order> orderHistory = orderRepository.DisplayOrderHistoryStore(storeIdToLookUpInt).ToList(); Console.Write("(Order ID) "); Console.Write("(Order Address ID) "); Console.Write("(Total Cost) "); Console.Write("(Order DateTime) "); Console.Write("(Order Store ID) "); Console.WriteLine(); for (int i = 1; i < orderHistory.Count() + 1; i++) { Order orderhistory = orderHistory[i - 1]; string orderIdString = $"{i}: \"{orderhistory.orderID}\""; string orderAddressIdString = $"\"{orderhistory.orderAddressID}\""; string orderTotalCostString = $"\"{orderhistory.totalCost}\""; string orderDateTimeString = $"\"{orderhistory.orderDate}\""; string orderStoreIdString = $"\"{orderhistory.storeId}\""; Console.Write(orderIdString + " "); Console.Write(orderAddressIdString + " "); Console.Write(orderTotalCostString + " "); Console.Write(orderDateTimeString + " "); Console.Write(orderStoreIdString + " "); Console.WriteLine(); } } else if (lookUpChoice.ToLower() == "u") { Console.WriteLine("Please provide User ID"); Console.Write("User ID: "); string userIdToLookUp = Console.ReadLine(); bool parseSuccess = Int32.TryParse(userIdToLookUp, out int userIdToLookUpInt); while (parseSuccess == false) { Console.WriteLine("Not a valid choice. Please enter a valid User ID."); Console.WriteLine("Please provide User ID"); Console.Write("User ID: "); userIdToLookUp = Console.ReadLine(); parseSuccess = Int32.TryParse(userIdToLookUp, out userIdToLookUpInt); } List <Order> orderHistory = orderRepository.DisplayOrderHistoryUser(userIdToLookUpInt).ToList(); Console.Write("(Order ID) "); Console.Write("(Order Address ID) "); Console.Write("(Total Cost) "); Console.Write("(Order DateTime) "); Console.Write("(Order Store ID) "); Console.WriteLine(); for (int i = 1; i < orderHistory.Count() + 1; i++) { Order orderhistory = orderHistory[i - 1]; string orderIdString = $"{i}: \"{orderhistory.orderID}\""; string orderAddressIdString = $"\"{orderhistory.orderAddressID}\""; string orderTotalCostString = $"\"{orderhistory.totalCost}\""; string orderDateTimeString = $"\"{orderhistory.orderDate}\""; string orderStoreIdString = $"\"{orderhistory.storeId}\""; Console.Write(orderIdString + " "); Console.Write(orderAddressIdString + " "); Console.Write(orderTotalCostString + " "); Console.Write(orderDateTimeString + " "); Console.Write(orderStoreIdString + " "); Console.WriteLine(); } } else if (lookUpChoice.ToLower() == "s") { Console.WriteLine("So you want to look up all users."); Console.WriteLine("How would you like to sort the results?"); Console.WriteLine("e - earliest first"); Console.WriteLine("l - latest first"); Console.WriteLine("c - cheapest first"); Console.WriteLine("x - most expensive first"); string lookUpSortChoice = Console.ReadLine(); while (!(lookUpSortChoice.ToLower() == "e" || lookUpSortChoice.ToLower() == "l" || lookUpSortChoice.ToLower() == "c" || lookUpSortChoice.ToLower() == "x")) { Console.WriteLine("Invalid choice. Please type either 'e', 'l' 'c', or 'x'."); Console.WriteLine("How would you like to sort the results?"); Console.WriteLine("e - earliest first"); Console.WriteLine("l - latest first"); Console.WriteLine("c - cheapest first"); Console.WriteLine("x - most expensive first"); lookUpSortChoice = Console.ReadLine(); } List <Order> collectionOfOrders = orderRepository.DisplayOrderHistory(lookUpSortChoice).ToList(); foreach (var item in collectionOfOrders) { Console.Write("Order ID: " + item.orderID + " "); Console.Write("User ID: " + item.userID + " "); Console.Write("Order Address ID: " + item.orderAddressID + " "); Console.Write("Total Cost: " + item.totalCost + " "); Console.Write("Order DateTime: " + item.orderDate + " "); Console.Write("Store ID: " + item.storeId); Console.WriteLine(); } } } else if (choice == "x") { smallLoop = false; } } } }
public void AddAddress(Library.Address address) { _db.Address.Add(AddressMapper.Map(address)); }