public Order CalculateOrder(Order order) { List <Product> products = ProductRepository.GetProducts(); foreach (var product in products) { if (order.ProductType == product.ProductType) { order.CostPerSquareFoot = product.CostPerSquareFoot; order.LaborCostPerSquareFoot = product.LaborCostPerSquareFoot; break; } } order.MaterialCost = order.Area * order.CostPerSquareFoot; order.LaborCost = order.Area * order.LaborCostPerSquareFoot; List <Tax> taxes = TaxRepository.GetTaxes(); foreach (var tax in taxes) { if (tax.StateAbbreviation == order.State) { order.Tax = (order.MaterialCost + order.LaborCost) * (tax.TaxRate / 100); order.TaxRate = tax.TaxRate; } } order.Total = order.MaterialCost + order.LaborCost + order.Tax; order.Area = decimal.Round(order.Area, 2); order.CostPerSquareFoot = decimal.Round(order.CostPerSquareFoot, 2); order.LaborCostPerSquareFoot = decimal.Round(order.LaborCostPerSquareFoot, 2); order.MaterialCost = decimal.Round(order.MaterialCost, 2); order.LaborCost = decimal.Round(order.LaborCost, 2); order.Total = decimal.Round(order.Total, 2); return(order); }
public void Execute() { IUserIO userIO = new UserIO(); userIO.Clear(); FlooringManager manager = FlooringFactoryManager.Create(); Order order = new Order(); userIO.WriteLine("CREATE NEW ORDER: "); userIO.WriteLine(""); userIO.WriteLine(new string('=', 60)); userIO.WriteLine(""); order.OrderDate = HelperMethods.GetDateTime("Please enter the date of order: "); order.CustomerName = HelperMethods.GetCustomerName("Please enter the customers name: "); order.State = HelperMethods.GetStateTax(TaxRepository.GetTaxes()); order.ProductType = HelperMethods.GetProductInformation(ProductRepository.GetProducts()); order.Area = HelperMethods.GetDecimalFromString("Enter the Area: "); order = manager.CalculateOrder(order); userIO.DisplayOrder(order); if (HelperMethods.GetYesNoAnswerFromUser("Would you like to create this order?")) { userIO.WriteLine("Order has succesfully been created."); AddOrderResponse response = manager.AddOrder(order); } else { userIO.WriteLine("Order was not created."); } }
public void Execute() { IUserIO userIO = new UserIO(); userIO.Clear(); FlooringManager manager = FlooringFactoryManager.Create(); userIO.WriteLine("EDIT ORDER:"); userIO.WriteLine(""); userIO.WriteLine(new string('=', 60)); userIO.WriteLine(""); DateTime dateTime = HelperMethods.GetDateTime("Enter the order date: "); int OrderNumber = HelperMethods.GetIntFromUser("Enter the order number: "); EditOrderResponse response = new EditOrderResponse(); Order oldOrder = manager.GetOrderByOrderNumber(dateTime, OrderNumber); Order order = oldOrder; if (oldOrder == null) { response.Success = false; response.Message = "No orders exist with this date."; } else { order.CustomerName = HelperMethods.GetCustomerName($"Previous Name: {oldOrder.CustomerName}\n Please enter the customers name: ", oldOrder.CustomerName); Console.WriteLine($"Previous State: {oldOrder.State}"); order.State = HelperMethods.GetStateTax(TaxRepository.GetTaxes(), oldOrder.State); Console.WriteLine($"Previous Product: {oldOrder.ProductType}"); order.ProductType = HelperMethods.GetProductInformation(ProductRepository.GetProducts()); order.Area = HelperMethods.GetDecimalFromString($"Previous Area: {oldOrder.Area}\n Enter the Area: ", oldOrder.Area); userIO.DisplayOrder(order); if (HelperMethods.GetYesNoAnswerFromUser("Would you like to create this order?")) { manager.DeleteOrder(oldOrder); manager.AddOrder(order); response.Success = true; response.Message = "Order successfully added."; } } }
public List <Tax> GetTaxList() { return(TaxRepository.GetTaxes()); }