public void CanEditOrderTestRepo() { var productRepo = new ProductFileRepo(Settings.ProductPath); var taxRepo = new TaxFileRepo(Settings.TaxPath); var product = productRepo.LoadProducts("tile"); var tax = taxRepo.LoadTaxes("MN"); OrderManager manager = new OrderManager(new FileOrderRepo(FilePath, Temp), productRepo, taxRepo); AddAnOrderResponse addOrder = manager.AddOrder(new DateTime(2018, 09, 25), "Name Test", tax, product, 100, 0); manager.AddToOrderRepo(addOrder.AddedOrder); addOrder.AddedOrder.Area = 250; addOrder.AddedOrder.CustomerName = "Edited Name Test"; manager.EditOrder(addOrder.AddedOrder); var orderResponse = manager.OrderLookupDate(addOrder.AddedOrder.OrderDate); var editedOrder = orderResponse.ListOfOrders.SingleOrDefault(o => o.OrderNumber.Equals(addOrder.AddedOrder.OrderNumber)); Assert.IsNotNull(editedOrder); Assert.AreEqual(addOrder.AddedOrder.Area, editedOrder.Area); Assert.AreEqual(addOrder.AddedOrder.CustomerName, editedOrder.CustomerName); }
internal static void Execute() { Console.Clear(); Console.WriteLine("Add an Order "); Console.WriteLine("*************************************"); Console.WriteLine(); OrderManager manager = OrderManagerFactory.Create(); DateTime orderDate = ConsoleIO.GetFutureDateTime("Enter a valid Date EX: MM/DD/YYYY "); string customerName = ConsoleIO.GetStringFromUser("Customer Name: "); TaxLookupResponse taxResponse = manager.LoadTaxes(); var state = ConsoleIO.GetStateFromUser("State: ", taxResponse.Taxes); IEnumerable <Product> GetProducts = manager.GetAllProducts(); ConsoleIO.ShowListOfProducts(GetProducts); ProductLookupResponse productResponse = manager.LoadProducts(); var productType = ConsoleIO.GetProductFromUser("Product Type: ", productResponse.Products); decimal area = ConsoleIO.GetAreaFromUser("Area: "); Console.WriteLine(); Console.WriteLine("*************************************"); AddAnOrderResponse addResponse = manager.AddOrder(orderDate, customerName, state, productType, area, 0); if (!addResponse.Success) { Console.WriteLine("An error has occured"); Console.WriteLine(addResponse.Message); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } else { Console.WriteLine($"Customer Name: {customerName}, State: {state.Abbreviation}, Product Type: {productType.Name}, Area: {area}"); Console.WriteLine(); if (ConsoleIO.GetYesNoAnswerFromUser($"Are you sure you want to add this file?") == "Y") { manager.AddToOrderRepo(addResponse.AddedOrder); Console.WriteLine("The Order was successfully added."); Console.WriteLine("Press any key to continue..."); } else { Console.WriteLine("Order cancelled. Press any key to continue."); Console.WriteLine("Press any key to continue..."); } Console.ReadLine(); } }
public AddAnOrderResponse AddOrder(DateTime orderDate, string customerName, Tax state, Product productType, decimal area, int orderNumber) { AddAnOrderResponse addOrderResponse = new AddAnOrderResponse(); addOrderResponse.StateTax = _taxRepository.LoadTaxes(state.Abbreviation); addOrderResponse.ProductType = _productRepository.LoadProducts(productType.Name); if (addOrderResponse.StateTax == null) { addOrderResponse.Success = false; addOrderResponse.Message = $"{state} is not a state we sell."; } else if (addOrderResponse.ProductType == null) { addOrderResponse.Success = false; addOrderResponse.Message = $"{productType} is not a valid product type."; } else { addOrderResponse.Success = true; } if (addOrderResponse.Success) { addOrderResponse.AddedOrder = new Order(); addOrderResponse.AddedOrder.OrderDate = orderDate; addOrderResponse.AddedOrder.CustomerName = customerName; addOrderResponse.AddedOrder.State = state.Abbreviation; addOrderResponse.AddedOrder.TaxRate = addOrderResponse.StateTax.TaxRate; addOrderResponse.AddedOrder.ProductType = productType.Name; addOrderResponse.AddedOrder.CostPerSquareFoot = addOrderResponse.ProductType.MaterialUnitCost; addOrderResponse.AddedOrder.LaborCostPerSquareFoot = addOrderResponse.ProductType.LaborUnitCost; addOrderResponse.AddedOrder.Area = area; addOrderResponse.AddedOrder.OrderNumber = orderNumber; } return(addOrderResponse); }
public void CanAddOrderTest(string customerName, string state, string material, decimal area, bool success) { var productRepo = new ProductFileRepo(Settings.ProductPath); var taxRepo = new TaxFileRepo(Settings.TaxPath); var product = productRepo.LoadProducts(material); var tax = taxRepo.LoadTaxes(state); OrderManager manager = new OrderManager(new FileOrderRepo(FilePath, Temp), new ProductFileRepo(Settings.ProductPath), new TaxFileRepo(Settings.TaxPath)); AddAnOrderResponse addOrder = manager.AddOrder(new DateTime(2020, 09, 25), customerName, tax, product, area, 0); manager.AddToOrderRepo(addOrder.AddedOrder); var thisOrder = manager.OrderLookupDate(new DateTime(2020, 09, 25)); Assert.AreEqual(3, thisOrder.ListOfOrders.Count()); var orderThatIAdded = thisOrder.ListOfOrders.SingleOrDefault(o => o.OrderNumber == addOrder.AddedOrder.OrderNumber); Assert.AreEqual(addOrder.AddedOrder.CustomerName, orderThatIAdded.CustomerName); Assert.AreEqual(addOrder.AddedOrder.Area, orderThatIAdded.Area); Assert.AreEqual(addOrder.AddedOrder.State, orderThatIAdded.State); }
public void CanDeleteOrder() { var productRepo = new ProductFileRepo(Settings.ProductPath); var taxRepo = new TaxFileRepo(Settings.TaxPath); var product = productRepo.LoadProducts("tile"); var tax = taxRepo.LoadTaxes("MN"); OrderManager manager = new OrderManager(new FileOrderRepo(FilePath, Temp), new ProductFileRepo(Settings.ProductPath), new TaxFileRepo(Settings.TaxPath)); AddAnOrderResponse addResponse = manager.AddOrder(new DateTime(2020, 09, 25), "Name Test", tax, product, 100, 0); manager.AddToOrderRepo(addResponse.AddedOrder); var thisOrder = manager.OrderLookupDate(new DateTime(2020, 09, 25)); Assert.AreEqual(3, thisOrder.ListOfOrders.Count()); manager.DeleteOrder(addResponse.AddedOrder.OrderDate, addResponse.AddedOrder.OrderNumber); var afterDeleted = manager.OrderLookupDate(new DateTime(2020, 09, 25)); Assert.AreEqual(2, afterDeleted.ListOfOrders.Count()); }