public void TestingOrderRules(int orderNumber, string customerName, string stateAbbreviation, decimal taxrate, string productType, decimal area, decimal costPerSquareFoot, decimal laborCostPerSquareFoot, bool expectedResult) { DateTime dateTime = DateTime.Parse("01/01/2020"); Orders testOrder = new Orders() { State = stateAbbreviation, ProductType = productType }; NewOrderResponse response = new NewOrderResponse(); response = NewOrderRules.NewOrder(dateTime, testOrder.State, testOrder.ProductType); Assert.AreEqual(response.Success, expectedResult); }
public void Execute() { Console.Clear(); IFileOrderRepo fileOrderRepo; Orders newOrder = new Orders(); Products products = new Products(); Console.WriteLine("New Order Form"); Console.WriteLine("----------------------"); Console.WriteLine("Enter a date (New orders must be set in future dates): "); var userInput = Console.ReadLine(); var path = ConsoleIO.UserDateValidateToString(userInput); var userDate = ConsoleIO.UserDateToDateTime(userInput); newOrder.CustomerName = ConsoleIO.ValidateCompanyName("Enter company name: "); ConsoleIO.DisplayStateAbbreviation(FileTaxRepo.LoadTaxes()); newOrder.State = ConsoleIO.ValidateStateFormat("Enter a State: (States must be abbreviated)"); Console.WriteLine("Select A Product: "); ConsoleIO.DisplayProducts(FileProductsRepo.LoadProducts()); newOrder.ProductType = Console.ReadLine(); newOrder.Area = ConsoleIO.ValidateAreaFormat("What's the Area? (Must be minimum of 100 square feet): "); NewOrderResponse response = new NewOrderResponse(); response = NewOrderRules.NewOrder(userDate, newOrder.State, newOrder.ProductType); if (response.Success == false) { Console.WriteLine(response.Message); Console.ReadKey(); } else { newOrder.TaxRate = response.Tax; newOrder.CostPerSquareFoot = response.CostPerSquareFoot; newOrder.LaborCostPerSquareFoot = response.LaborCostPerSquareFoot; newOrder.OrderNumber = response.OrderNumber; Console.Clear(); Console.WriteLine("Summary"); Console.WriteLine("-------------------------------------------------------------"); ConsoleIO.DisplayOrderDetails(new List <Orders> { newOrder }, path); if (ConsoleIO.Exit("Do you want to SAVE new order? [Y/N]") == false) { return; } else { fileOrderRepo = new FileOrderRepo(path); if (!File.Exists(path)) { File.Create(path).Dispose(); fileOrderRepo.Create(newOrder); } else { fileOrderRepo.Create(newOrder); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } }
public void Execute() { Console.Clear(); IFileOrderRepo fileOrderRepo; Orders newOrder = new Orders(); Console.WriteLine("Edit Order Form"); Console.WriteLine("--------------------------"); Console.WriteLine("Enter a date: "); string userInputDate = Console.ReadLine(); if (string.IsNullOrEmpty(userInputDate)) { Console.WriteLine("Error: User input was invalid...Hit any key to return to menu..."); Console.ReadKey(); return; } var path = ConsoleIO.UserDateValidateToString(userInputDate); OrderManager manager = OrderManagerFactory.Create(path); OrderLookupResponse respose = manager.LookupOrders(path); if (respose.Success) { ConsoleIO.DisplayOrderDetails(respose.orders, path); } else { Console.WriteLine("An error has occurred: "); Console.WriteLine(respose.Message); } int orderNumber = ConsoleIO.StringToInt("Which order would you like to edit? (Choose order by it's ORDER NUMBER): "); Console.Clear(); fileOrderRepo = new FileOrderRepo(path); fileOrderRepo.LoadOrder(); Orders oldOrder = fileOrderRepo.ReadByOrderNumber(orderNumber); ConsoleIO.DisplayOrderDetails(new List <Orders> { oldOrder }, path); string newName = ConsoleIO.ValidateCompanyName("Enter new NAME or hit enter to continue: "); if (string.IsNullOrEmpty(newName)) { newOrder.CustomerName = oldOrder.CustomerName; } else { newOrder.CustomerName = newName; } ConsoleIO.DisplayStateAbbreviation(FileTaxRepo.LoadTaxes()); Console.WriteLine("Enter new STATE or hit enter to continue:"); Console.WriteLine("REMINDER: States MUST be abbreviated!!"); string newState = Console.ReadLine(); if (string.IsNullOrEmpty(newState)) { newOrder.State = oldOrder.State; } else { newOrder.State = newState; } ConsoleIO.DisplayProducts(FileProductsRepo.LoadProducts()); Console.WriteLine("Enter new PRODUCT TYPE or hit enter to continue:"); string newProduct = Console.ReadLine(); if (string.IsNullOrEmpty(newProduct)) { newOrder.ProductType = oldOrder.ProductType; } else { newOrder.ProductType = newProduct; } Console.WriteLine("Enter new AREA or hit enter to continue:"); Console.WriteLine("REMINDER: Area MUST be at minimum 100"); string newArea = Console.ReadLine(); if (string.IsNullOrEmpty(newArea)) { newOrder.Area = oldOrder.Area; } else { newOrder.Area = ConsoleIO.StringToDecimal(newArea); } DateTime.TryParse(userInputDate, CultureInfo.GetCultureInfo("en-us"), DateTimeStyles.NoCurrentDateDefault, out DateTime dateTime); NewOrderResponse response = new NewOrderResponse(); response = NewOrderRules.NewOrder(dateTime, newOrder.State, newOrder.ProductType); if (response.Success == false) { Console.WriteLine(response.Message); Console.ReadKey(); } else { newOrder.TaxRate = response.Tax; newOrder.CostPerSquareFoot = response.CostPerSquareFoot; newOrder.LaborCostPerSquareFoot = response.LaborCostPerSquareFoot; newOrder.OrderNumber = response.OrderNumber; Console.Clear(); Console.WriteLine("Summary"); Console.WriteLine("-------------------------------------------------------------"); Console.WriteLine("OLD ORDER"); Console.WriteLine("*************************************************************"); ConsoleIO.DisplayOrderDetails(new List <Orders> { oldOrder }, path); Console.WriteLine("*************************************************************"); Console.WriteLine("NEW ORDER"); Console.WriteLine("-------------------------------------------------------------"); ConsoleIO.DisplayOrderDetails(new List <Orders> { newOrder }, path); Console.WriteLine("-------------------------------------------------------------"); if (ConsoleIO.Exit("Do you want to SAVE edited order? [Y/N]") == false) { return; } else { fileOrderRepo.Delete(oldOrder.OrderNumber, oldOrder); fileOrderRepo.Create(newOrder); } } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }