public DisplaySingleOrderResponse DisplayOrder(DateTime validatedDateTime, int validatedOrderNumber, OrderManager manager) { DisplaySingleOrderResponse response = manager.DisplayOrder(validatedDateTime, validatedOrderNumber); if (response.Success) { Console.WriteLine(); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" ORDER FOUND - DETAILS BELOW "); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(); Console.WriteLine($" Order Number: {response.OrderDetails.OrderNumber.ToString()} | Order Date: {validatedDateTime.ToString("MM/dd/yyyy")}"); Console.WriteLine($" Customer Name: {response.OrderDetails.CustomerName}"); Console.WriteLine($" State: {response.OrderDetails.State}"); Console.WriteLine($" Product: {response.OrderDetails.ProductType}"); Console.WriteLine($" Materials: {response.OrderDetails.MaterialCost:c}"); Console.WriteLine($" Labor: {response.OrderDetails.LaborCost:c}"); Console.WriteLine($" Tax: {response.OrderDetails.Tax:c}"); Console.WriteLine($" Total: {response.OrderDetails.Total:c}"); Console.WriteLine(); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" ENTER ORDER UPDATES TO ANY OF THE FOUR EDITABLE FIELD BELOW "); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" PRESS ENTER TO SKIP OVER CHANGING ANY FIELD "); Console.WriteLine(ConsoleIO.SeperatorBar); } return(response); }
public void ChangeArea(DisplaySingleOrderResponse response, OrderManager manager) { bool validArea = false; while (!validArea) { Console.Write(" Area: "); string newArea = (Console.ReadLine()); if (!string.IsNullOrEmpty(newArea)) { decimal area = decimal.Parse(newArea); if (area >= 100) { validArea = true; response.OrderDetails.Area = area; } else { Console.WriteLine(" Please enter an area that meets the minimum of 100 SQ FT. "); } } else { validArea = true; } } }
public void ChangeState(DisplaySingleOrderResponse response) { bool validState = false; while (!validState) { Console.Write(" Enter State (with abbreviation or full name): "); string newState = (Console.ReadLine().ToUpper()); if (!string.IsNullOrEmpty(newState)) { TaxManager taxManager = TaxManagerFactory.Create(); Tax tax = taxManager.TaxByState(newState); if (tax != null) { validState = true; response.OrderDetails.State = newState; } else { Console.WriteLine(" Please enter a VALID state. "); } } else { validState = true; } } }
public void ChangeProduct(DisplaySingleOrderResponse response) { bool validProduct = false; while (!validProduct) { Console.Write(" Product Choice: "); string newProductType = (Console.ReadLine().ToUpper()); if (!string.IsNullOrEmpty(newProductType)) { ProductManager productManager = ProductManagerFactory.Create(); Product product = productManager.ProductType(newProductType); if (product != null) { validProduct = true; response.OrderDetails.ProductType = newProductType; } else { Console.WriteLine(" Please enter a VALID product. "); } } else { validProduct = true; } } }
public void Execute() { Console.Clear(); OrderManager manager = OrderManagerFactory.Create(); Console.WriteLine(); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" EDIT ORDER MENU "); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(); DateTime validatedDate = ValidateDate(); int validatedOrderNumber = ValidateOrderNumber(); DisplaySingleOrderResponse response = DisplayOrder(validatedDate, validatedOrderNumber, manager); if (response.Success) { ChangeName(response); ChangeState(response); ChangeProduct(response); ChangeArea(response, manager); } else { Console.WriteLine(ConsoleIO.ErrorMessage); Console.WriteLine(response.Message); Console.ReadKey(); } }
public void OrderManagerEditOrderTest(DateTime date, int orderNumber, string customerName, string state, string productType, decimal area, string expectedName, string expectedState, string expectedProduct, decimal expectedArea, bool expectedResult) { TestOrderRepository testOrderRepo = new TestOrderRepository(); TestProductRepository testProductRepo = new TestProductRepository(); TestTaxRepository testTaxRepo = new TestTaxRepository(); OrderManager manager = new OrderManager(testOrderRepo, testProductRepo, testTaxRepo); DisplaySingleOrderResponse singleResponse = manager.GetOrderToEdit(date, orderNumber); Assert.AreEqual(singleResponse.Order.Date, date); Assert.AreEqual(singleResponse.Order.OrderNumber, orderNumber); Assert.AreEqual(singleResponse.Order.CustomerName, customerName); Assert.AreEqual(singleResponse.Order.State, state); Assert.AreEqual(singleResponse.Order.ProductType, productType); Assert.AreEqual(singleResponse.Order.Area, area); EditOrderResponse response = manager.EditOrder(date, orderNumber, expectedName, expectedState, expectedProduct, expectedArea); // DisplaySingleOrderResponse afterEditResponse = manager.GetOrderToEdit(date, orderNumber); if (response.Success) { testOrderRepo.UpdateThisOrder(response.Order); DisplaySingleOrderResponse afterEditResponse = manager.GetOrderToEdit(date, orderNumber); Assert.AreEqual(afterEditResponse.Order.Date, date); Assert.AreEqual(afterEditResponse.Order.OrderNumber, orderNumber); Assert.AreEqual(afterEditResponse.Order.CustomerName, expectedName); Assert.AreEqual(afterEditResponse.Order.State, expectedState); Assert.AreEqual(afterEditResponse.Order.ProductType, expectedProduct); Assert.AreEqual(afterEditResponse.Order.Area, expectedArea); } //testOrderRepo.UpdateThisOrder(response.Order); //Assert.AreEqual(expectedResult, }
public void OrderNumberCheck(int orderNumber, bool expectedResult) { OrderManager orderManager = OrderManagerFactory.Create(); DisplaySingleOrderResponse response = orderManager.DisplayOrder(new DateTime(2000, 1, 1), orderNumber); Assert.AreEqual(expectedResult, response.Success); }
public void ChangeName(DisplaySingleOrderResponse response) { Console.WriteLine(); Console.Write($" Customer Name: "); string newName = Console.ReadLine(); if (!string.IsNullOrEmpty(newName)) { response.OrderDetails.CustomerName = newName; } }
public DisplaySingleOrderResponse DisplayOrder(DateTime orderDate, int orderNumber) { DisplaySingleOrderResponse response = new DisplaySingleOrderResponse(); response.OrderDetails = _orderRepository.DisplayOrder(orderNumber, orderDate); if (response.OrderDetails == null) { response.Success = false; } else { response.Success = true; } return(response); }
public void ConfirmChange(DisplaySingleOrderResponse response, OrderManager manager) { ConsoleIO.ConfirmOrCancelFooter(); var input = ConsoleIO.YesNoValidation(); if (input == "Y") { manager.EditOrder(response.OrderDetails); } else { Console.WriteLine(ConsoleIO.ErrorMessage); Console.WriteLine(response.Message); Console.ReadKey(); } }
public DisplaySingleOrderResponse GetOrderToEdit(DateTime date, int orderNumber) { DisplaySingleOrderResponse response = new DisplaySingleOrderResponse(); response.Order = _orderRepo.GetAllOrdersForDate(date).FirstOrDefault(o => o.OrderNumber == orderNumber); if ((response.Order == null)) { response.Success = false; response.Message = $"Error: order {orderNumber} does not match up with any order on {date.ToShortDateString()}."; return(response); } else { response.Order = _orderRepo.GetAllOrdersForDate(date).First(o => o.OrderNumber == orderNumber); response.Success = true; return(response); //var orderToEdit = _orderRepo.GetAllOrdersForDate(date).First(o => o.OrderNumber == orderNumber); //return orderToEdit; } }
public void OrderCheck() { OrderManager manager = OrderManagerFactory.Create(); DisplaySingleOrderResponse response = manager.DisplayOrder(new DateTime(2000, 1, 1), 2); Assert.IsNotNull(response.OrderDetails); Assert.IsTrue(response.Success); Assert.AreEqual(2, response.OrderDetails.OrderNumber); Assert.AreEqual("Big Homes", response.OrderDetails.CustomerName); Assert.AreEqual("OH", response.OrderDetails.State); Assert.AreEqual(6.25, response.OrderDetails.TaxRate); Assert.AreEqual("Tile", response.OrderDetails.ProductType); Assert.AreEqual(500, response.OrderDetails.Area); Assert.AreEqual(3.50, response.OrderDetails.CostPerSquareFoot); Assert.AreEqual(4.15, response.OrderDetails.LaborCostPerSquareFoot); Assert.AreEqual(1750.00, response.OrderDetails.MaterialCost); Assert.AreEqual(2075.00, response.OrderDetails.LaborCost); Assert.AreEqual("239.06", response.OrderDetails.Tax.ToString("00.00")); Assert.AreEqual("4064.06", response.OrderDetails.Total.ToString("00.00")); }
public void Execute() { Console.Clear(); OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine(); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" REMOVE ORDER MENU "); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(); DateTime validatedDateTime = new DateTime(); bool validDate = false; while (!validDate) { Console.Write(" Enter Order Date In MM/DD/YYYY Format: "); string date = Console.ReadLine(); if (!string.IsNullOrEmpty(date)) { if (DateTime.TryParse(date, out validatedDateTime)) { validDate = true; } else { Console.WriteLine(" Please enter a VALID date format. "); } } else { Console.WriteLine(" Please enter a date. "); } } bool validOrderNumber = false; int validatedOrderNumber = 0; while (!validOrderNumber) { Console.Write(" Enter a Order Number: "); string orderNumber = Console.ReadLine(); if (!string.IsNullOrEmpty(orderNumber)) { if (int.TryParse(orderNumber, out validatedOrderNumber)) { validOrderNumber = true; } else { Console.WriteLine(" Please enter a VALID order number. "); } } else { Console.WriteLine(" Please enter an order number. "); } } DisplaySingleOrderResponse response = manager.DisplayOrder(validatedDateTime, validatedOrderNumber); if (response.Success) { Console.WriteLine(); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(" ORDER FOUND - DETAILS BELOW "); Console.WriteLine(ConsoleIO.SeperatorBar); Console.WriteLine(); Console.WriteLine($" Order Number: {response.OrderDetails.OrderNumber.ToString()} | Order Date: {validatedDateTime.ToString("MM/dd/yyyy")} "); Console.WriteLine($" Customer Name: {response.OrderDetails.CustomerName} "); Console.WriteLine($" State: {response.OrderDetails.State} "); Console.WriteLine($" Product: {response.OrderDetails.ProductType} "); Console.WriteLine($" Materials: {response.OrderDetails.MaterialCost:c} "); Console.WriteLine($" Labor: {response.OrderDetails.LaborCost:c} "); Console.WriteLine($" Tax: {response.OrderDetails.Tax:c} "); Console.WriteLine($" Total: {response.OrderDetails.Total:c} "); ConsoleIO.ConfirmOrCancelFooter(); var input = ConsoleIO.YesNoValidation(); if (input == "Y") { manager.RemoveOrder(response.OrderDetails); } } else { Console.WriteLine(ConsoleIO.ErrorMessage); Console.WriteLine(response.Message); Console.ReadKey(); } }