public void Execute() { bool isValidDate = false; Console.Clear(); while (isValidDate == false) { dateString = io.GetDateFromUser("Please enter date of file to load."); dateTime = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); displayResponse = manager.DisplayOrders(dateString); if (displayResponse.Success == true) { foreach (var order in displayResponse.Orders) { io.DisplayOrder(order, dateTime); } isValidDate = true; } } int orderNumber = io.GetIntFromUser("Please enter order number to remove: "); bool isRemove = false; while (isRemove == false) { foreach (var order in displayResponse.Orders) { if (orderNumber == order.OrderNumber) { RemoveOrder(order); isRemove = true; break; } else { Console.WriteLine("Order not found. Please enter valid order number."); } } } }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Display an order"); Console.WriteLine("------------------------"); string date = io.GetDateFromUser("Please provide a date"); DisplayOrderResponse response = manager.LoadOrders(date); foreach (FlooringOrder order in response.Orders) { io.DisplayOrderDetails(order); } //no matter what date, it shows the hardcoded information from the test file Console.WriteLine("\nPress Enter to continue..."); Console.ReadLine(); }
private void EditOrderDate() { bool isValidDate = false; Console.Clear(); while (isValidDate == false) { userDate = io.GetDateFromUser("Please enter date of file to load."); dateTime = DateTime.ParseExact(userDate, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); displayResponse = manager.DisplayOrders(userDate); if (displayResponse.Success == true) { foreach (var order in displayResponse.Orders) { io.DisplayOrder(order, dateTime); } isValidDate = true; } } }
private void NewOrderDate() { bool isValidDate = false; while (isValidDate == false) { //get date, verify format and generate string of formatted date dateString = io.GetDateFromUser("Please enter date for order: "); //make sure the date string (as a DateTime) is after today dateTime = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); if (dateTime < DateTime.Today) { Console.WriteLine("Date must be after today."); } else { isValidDate = true; } } //next order number, need date/load for this orderNumberResponse = manager.NextOrderNumber(dateString); }
public void Execute() { Console.Clear(); OrderManager manager = OrderManagerFactory.Create(); //****display available files to load**** io.DisplayFiles(manager.FileList()); //get string, verify date range, get back formatted string userDate = io.GetDateFromUser("Please enter date of file to load."); DisplayOrdersResponse response = manager.DisplayOrders(userDate); DateTime dateTime = DateTime.ParseExact(userDate, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); //if order found on this date, display order(s) if (response.Success == true) { foreach (var order in response.Orders) { io.DisplayOrder(order, dateTime); } } Console.WriteLine("Press any key to return to main menu."); Console.ReadLine(); }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Edit an order"); Console.WriteLine("------------------------"); bool isValidDate = false; DateTime orderDate = new DateTime(); string date1 = ""; while (isValidDate == false) { date1 = io.GetDateFromUser("Please provide a date"); orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); if (orderDate <= DateTime.Today) { Console.WriteLine("Date must be later than today"); } else { isValidDate = true; } } DisplayOrderResponse response = manager.LoadOrders(date1); foreach (FlooringOrder order in response.Orders) { io.DisplayOrderDetails(order); } int ordernumber = -1; bool isValidNumber = false; while (isValidNumber == false) { string orderstring = io.GetStringFromUser("Please enter an order number."); if (!int.TryParse(orderstring, out ordernumber)) { Console.WriteLine("This did not work, please enter a number"); } else { foreach (var item in response.Orders) { if (item.OrderNumber == ordernumber) { newOrder = item; } } isValidNumber = true; } } Console.WriteLine(""); string newName = PromptUser("What would you like to change your name to?"); if (newName != "") { while (!newName.All(c => Char.IsLetterOrDigit(c) || c == ',' || c == '_' || c == '.')) { Console.WriteLine("Names must include either letters, numbers, spaces, periods, or commas (or any combonation thereof)"); newName = PromptUser("What is your name?"); } newOrder.CustomerName = newName; } TaxStateResponse taxResponse = uo.LoadTax(); FlooringTax orderTax = new FlooringTax(); bool isValidTax = false; while (isValidTax == false) { foreach (FlooringTax tax in taxResponse.TaxRate) { Console.WriteLine(" " + (taxResponse.TaxRate.IndexOf(tax) + 1) + ". " + tax.StateAbbreviation); } Console.WriteLine("Order is currently in " + newOrder.State); string newState = PromptUser("Enter a new state or press enter to continue."); if (newState != "") { if (int.TryParse(newState, out int nation)) { if (nation > 0 && nation <= taxResponse.TaxRate.Count) { newOrder.State = taxResponse.TaxRate[nation - 1].StateAbbreviation; newOrder.TaxRate = taxResponse.TaxRate[nation - 1].TaxRate; isValidTax = true; } } else { Console.WriteLine("That state isn't in our region yet."); } } else { isValidTax = true; } } List <FlooringProduct> ProductList = yo.LoadProducts(); FlooringProduct orderProduct = new FlooringProduct(); bool isValidProduct = false; while (isValidProduct == false) { foreach (FlooringProduct prod in ProductList) { Console.Write(" " + (ProductList.IndexOf(prod) + 1) + ". " + prod.ProductType); Console.Write(" Cost per sqft $" + prod.CostPerSquareFoot); Console.Write(" Cost for Labor per sqft $" + prod.LaborCostPerSquareFoot); Console.WriteLine("\n"); } Console.WriteLine("You have already chosen " + newOrder.ProductType); string newProduct = PromptUser("Please specifiy a different product or press enter to continue"); if (newProduct != "") { if (int.TryParse(newProduct, out int supply)) { if (supply > 0 && supply <= ProductList.Count) { newOrder.ProductType = ProductList[supply - 1].ProductType; newOrder.LaborCostPerSquareFoot = ProductList[supply - 1].LaborCostPerSquareFoot; newOrder.CostPerSquareFoot = ProductList[supply - 1].CostPerSquareFoot; isValidProduct = true; } } else { Console.WriteLine("That product isn't available yet."); } } else { isValidProduct = true; } } decimal area1 = 0; bool isValidArea = false; while (isValidArea == false) { area1 = newOrder.Area; string area = PromptUser("Please enter a new area or press enter to continue"); if (area != "") { if (decimal.TryParse(area, out area1)) { if (area1 < 100) { Console.WriteLine("You must enter a positive amount above 100"); Console.WriteLine("Please enter a valid square footage."); } else { newOrder.Area = area1; isValidArea = true; } } } else { isValidArea = true; } } //ask user for order number //if order exisits - ask user for each piece of order data && display exisiting data //if user presses Enter key without entering data - leave existing data in place //Only CustomerName, State, ProductType, Area can be changed //Order date may NOT change Console.Clear(); io.DisplayOrderDetails(newOrder); bool isSave = false; while (isSave == false) { string place = PromptUser("Would you like to place this order? Please enter yes or no"); if (place.ToLower() == "yes") { EditOrderResponse editResponse = manager.EditOrder(date1, newOrder); //still saving the new file even if selecting no isSave = true; // save final to file with approp date } else if (place.ToLower() == "no") { isSave = true; //return to main menu } else { Console.WriteLine("Please enter yes or no"); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Remove an order"); Console.WriteLine("------------------------"); bool isValidDate = false; DateTime orderDate = new DateTime(); string date1 = ""; while (isValidDate == false) { date1 = io.GetDateFromUser("Please provide a date"); orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); if (orderDate <= DateTime.Today) { Console.WriteLine("Date must be later than today"); } else { isValidDate = true; } } DisplayOrderResponse response = manager.LoadOrders(date1); foreach (FlooringOrder order in response.Orders) { io.DisplayOrderDetails(order); } int ordernumber = -1; bool isValidNumber = false; while (isValidNumber == false) { string orderstring = io.GetStringFromUser("Please enter an order number."); if (!int.TryParse(orderstring, out ordernumber)) { Console.WriteLine("This did not work, please enter a number"); } else { foreach (var item in response.Orders) { if (item.OrderNumber == ordernumber) { newOrder = item; } } isValidNumber = true; } } //if one order = delete entire file //if theres more than one order in date, remove the order number from list -> remove with LINQ //save list back to file for that date io.DisplayOrderDetails(newOrder); bool isSave = false; while (isSave == false) { string place = PromptUser("Are you entireley sure that you want to remove this order? Choose yes or no."); if (place.ToLower() == "yes") { DeleteOrderResponse deleteResponse = manager.DeleteOrder(date1, newOrder.OrderNumber); isSave = true; // save final to file with approps date } else if (place.ToLower() == "no") { isSave = true; } else { Console.WriteLine("Please enter yes or no"); } } Console.WriteLine("Press any key to continue..."); Console.ReadLine(); }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Add an order"); Console.WriteLine("------------------------"); bool isValidDate = false; DateTime orderDate = new DateTime(); string date1 = ""; while (isValidDate == false) { date1 = io.GetDateFromUser("Please provide a date"); orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us")); if (orderDate < DateTime.Today) { Console.WriteLine("Date must be after today"); } else { isValidDate = true; } } // orderNumberResponse = manager.NextOrderNumber(date1); string name = PromptUser("What is your name?"); while (!name.All(c => Char.IsLetterOrDigit(c) || c == ',' || c == '_' || c == '.') || name.Trim() == "") { Console.WriteLine("Names must include either letters, numbers, spaces, periods, or commas (or any combonation thereof)"); name = PromptUser("What is your name?"); } TaxStateResponse taxResponse = uo.LoadTax(); FlooringTax orderTax = new FlooringTax(); bool isValidTax = false; while (isValidTax == false) { foreach (FlooringTax tax in taxResponse.TaxRate) { Console.WriteLine(" " + (taxResponse.TaxRate.IndexOf(tax) + 1) + ". " + tax.StateAbbreviation); } string state = PromptUser("Please specify the number of the state you're planning on building in."); if (int.TryParse(state, out int nation)) { if (nation > 0 && nation <= taxResponse.TaxRate.Count) { orderTax = taxResponse.TaxRate[nation - 1]; isValidTax = true; } } else { Console.WriteLine("That state isn't in our region yet."); } } List <FlooringProduct> ProductList = yo.LoadProducts(); FlooringProduct orderProduct = new FlooringProduct(); bool isValidProduct = false; while (isValidProduct == false) { foreach (FlooringProduct prod in ProductList) { Console.Write(" " + (ProductList.IndexOf(prod) + 1) + ". " + prod.ProductType); Console.Write(" Cost per sqft $" + prod.CostPerSquareFoot); Console.Write(" Cost for Labor per sqft $" + prod.LaborCostPerSquareFoot); Console.WriteLine("\n"); } string product = PromptUser("Please specify which product you would like to use."); if (int.TryParse(product, out int supply)) { if (supply > 0 && supply <= ProductList.Count) { orderProduct = ProductList[supply - 1]; isValidProduct = true; } } else { Console.WriteLine("That product isn't available yet."); } } //Need to select product, if not (product) then show an error and loop string area = PromptUser("What is the square footage of the area you are looking to cover?"); decimal area1; while (decimal.TryParse(area, out area1) && area1 < 100) { //if (area1 < 100) //{ Console.WriteLine("You must enter a positive amount above 100"); Console.WriteLine("Please enter a valid square footage."); area = PromptUser("What is the square footage of the area you are looking to cover?"); //} //else //{ // area = area1.ToString(); //} } Console.Clear(); Console.WriteLine(""); newOrder.Area = area1; newOrder.State = orderTax.StateAbbreviation; newOrder.TaxRate = orderTax.TaxRate; newOrder.CustomerName = name; newOrder.date = orderDate; newOrder.ProductType = orderProduct.ProductType; newOrder.CostPerSquareFoot = orderProduct.CostPerSquareFoot; newOrder.LaborCostPerSquareFoot = orderProduct.LaborCostPerSquareFoot; io.DisplayOrderDetails(newOrder); bool isSave = false; while (isSave == false) { string place = PromptUser("Would you like to place this order? Please enter yes or no"); if (place.ToLower() == "yes") { AddOrderResponse addResponse = manager.AddOrder(date1, newOrder); isSave = true; // save final to file with approps date } else if (place.ToLower() == "no") { isSave = true; //return to main menu } else { Console.WriteLine("Please enter yes or no"); } } Console.WriteLine("Press any key to continue..."); Console.ReadLine(); string PromptUser(string s) { Console.WriteLine(s); return(Console.ReadLine()); } }