public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Enter a new order"); Console.WriteLine("-------------------"); DateTime dateInput = new DateTime(); bool dateVerify = false; do { Console.WriteLine("Enter the order date in the format MM/DD/YYYY"); string stringDate = Console.ReadLine(); try { dateInput = DateTime.Parse(stringDate); dateVerify = true; } catch { Console.WriteLine("Incorrect format"); Console.ReadKey(); Console.Clear(); } } while (!dateVerify); Order orderToAdd = new Order(); string nameInput; bool validName = false; do { Console.Write("Enter the customer's name: "); nameInput = Console.ReadLine(); validName = ValidateInput.CheckForInput(nameInput); } while (!validName); string productInput; bool validProduct = false; do { Console.Write("Enter the product material being purchased: "); productInput = Console.ReadLine(); validProduct = ValidateInput.CheckForInput(productInput); } while (!validProduct); string stateInput; bool validState = false; do { Console.Write("Enter the customer's two letter state abbreviation: "); stateInput = Console.ReadLine().ToUpper(); validState = ValidateInput.CheckForInput(stateInput); } while (!validState); decimal areaInput = -1.0m; do { Console.Write("Enter the square footage needed: "); string stringArea = Console.ReadLine(); areaInput = ValidateInput.CheckForDecimal(stringArea); if (areaInput < 100) { Console.WriteLine("Order minimum is 100 square feet"); areaInput = -1.0m; } } while (areaInput == -1.0m); PlaceNewOrderResponse response = manager.NewOrder(dateInput, nameInput, stateInput, productInput, areaInput); if (response.Success) { ConsoleIO.DisplayOrderDetails(response.Order); } else { Console.WriteLine("An error occurred"); Console.WriteLine(response.Message); } Console.WriteLine("\nPress any key to continue"); Console.ReadKey(); }