public void Execute(OrderManager manager) { Console.Clear(); Console.WriteLine("Look up all orders for date:"); Console.WriteLine(ConsoleIO.SeparatorBar); DateTime orderDate = ConsoleIO.GetRequiredLookUpDateTimeFromUser("Enter order date: "); AllOrdersResponse response = manager.RetrieveAllOrders(orderDate); if (response.Success) { foreach (Order order in response.Orders) { ConsoleIO.DisplayOrderDetails(order); } } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue."); Console.ReadKey(); }
[TestCase("", "OH", 0, "Tile", 100.00, 0, 0, 0, 0, 0, 0, false)] // invalid CustomerName public void CanAddOrderToOrderList(string customerName, string state, decimal taxRate, string productType, decimal area, decimal costPerSquareFoot, decimal laborCostPerSquareFoot, decimal materialCost, decimal laborCost, decimal tax, decimal total, bool expectedResult) { OrderManager manager = OrderManagerFactory.Create(); DateTime date = new DateTime(2021, 01, 01); AllOrdersResponse allResponse = manager.RetrieveAllOrders(new DateTime(2021, 01, 01)); List <Order> orderList = allResponse.Orders; Order newOrder = new Order(); newOrder.OrderDate = new DateTime(2021, 01, 01); newOrder.OrderNumber = orderList.Max(order => order.OrderNumber) + 1; newOrder.CustomerName = customerName; newOrder.State = state; newOrder.TaxRate = 0; newOrder.ProductType = productType; newOrder.Area = area; newOrder.CostPerSquareFoot = costPerSquareFoot; newOrder.LaborCostPerSquareFoot = laborCostPerSquareFoot; newOrder.MaterialCost = materialCost; newOrder.LaborCost = laborCost; newOrder.Tax = tax; newOrder.Total = total; AddOrderResponse response = new AddOrderResponse(); CalculateOrderResponse response2 = manager.CalculateOrder(newOrder); if (response2.Success) { response = manager.AddOrder(response2.Order); } Assert.AreEqual(expectedResult, response.Success); }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); Console.Clear(); Console.WriteLine("Load all orders on a given day"); Console.WriteLine("-------------------------------"); DateTime inputOrderDate = new DateTime(); bool dateVerify = false; do { Console.WriteLine("Enter the order date in the format MM/DD/YYYY"); string stringDate = Console.ReadLine(); try { inputOrderDate = DateTime.Parse(stringDate); dateVerify = true; } catch { Console.WriteLine("Incorrect format"); Console.ReadKey(); Console.Clear(); } } while (!dateVerify); AllOrdersResponse response = manager.AllOrderLookup(inputOrderDate); if (response.Success) { foreach (Order order in response.ListOfOrders) { ConsoleIO.DisplayOrderDetails(order); Console.WriteLine("Press any key to continue to next order..."); Console.ReadKey(); } } else { Console.WriteLine("An error occurred"); Console.WriteLine(response.Message); } Console.WriteLine("\nPress any key to continue"); Console.ReadKey(); }
public void CanDelete(string OrderDate, string NameInput, string StateInput, string ProductInput, decimal AreaInput, bool success) { OrderManager manager = OrderManagerFactory.Create(); DateTime orderDate = DateTime.Parse(OrderDate); PlaceNewOrderResponse response = manager.NewOrder(orderDate, NameInput, StateInput, ProductInput, AreaInput); AllOrdersResponse preDeleteResponse = manager.AllOrderLookup(orderDate); int placedCount = preDeleteResponse.ListOfOrders.Count; DeleteOrderResponse responseDelete = manager.DeleteOrder(response.Order); AllOrdersResponse postDeleteResponse = manager.AllOrderLookup(orderDate); int deleteCount = postDeleteResponse.ListOfOrders.Count; Assert.AreEqual(success, responseDelete.Success); Assert.AreEqual(deleteCount, (placedCount - 1)); }
[TestCase(4, false)] // invalid order number not on date -- can't remove public void CanRemoveOrder(int orderNumber, bool expectedResult) { OrderManager manager = OrderManagerFactory.Create(); AllOrdersResponse allResponse = manager.RetrieveAllOrders(new DateTime(2021, 01, 01)); List <Order> allOrders = allResponse.Orders; OrderLookupResponse lookupResponse = manager.LookupOrder(new DateTime(2021, 01, 01), orderNumber); RemoveOrderResponse removeResponse = new RemoveOrderResponse(); if (lookupResponse.Success) { removeResponse = manager.RemoveOrder(lookupResponse.Order, new DateTime(2021, 01, 01)); } Assert.AreEqual(expectedResult, removeResponse.Success); }
public AllOrdersResponse RetrieveAllOrders(DateTime orderDate) { AllOrdersResponse response = new AllOrdersResponse(); List <Order> orderList = _orderRepository.LoadAllOrders(orderDate); if (orderList.Count == 0) { response.Success = false; response.Message = $"No orders have been placed for {orderDate}."; } else { response.Success = true; response.Orders = orderList; } return(response); }
public AllOrdersResponse AllOrderLookup(DateTime inputOrderDate) { AllOrdersResponse response = new AllOrdersResponse { ListOfOrders = _orderRepo.LoadAllOrders(inputOrderDate) }; if (response.ListOfOrders == null) { response.Success = false; response.Message = $"There are no orders for {inputOrderDate}"; } else { response.Success = true; } return(response); }
public IActionResult GetOrders(string?customerSurname) { AllOrdersResponse response = new AllOrdersResponse(); if (string.IsNullOrEmpty(customerSurname)) { response.Response = _dbService.GetAllCustomersOrders(); return(Ok(response)); } var customer = _dbService.GetCustomerBySurname(customerSurname); if (customer == null) { return(NotFound("Customer with surname " + customerSurname + " doesnt exist")); } response.Response = _dbService.GetCustomerOrders(customer.IdCustomer); return(Ok(response)); }
[TestCase("Winter", "OH", "", "50", 2, false)] // Area < 100 public void CanEditOrder(string editCustomerName, string editStateAbbreviation, string editProductType, string editAreaInput, int changesMade, bool expectedResult) { OrderManager manager = OrderManagerFactory.Create(); AllOrdersResponse allResponse = manager.RetrieveAllOrders(new DateTime(2021, 01, 01)); List <Order> orderList = allResponse.Orders; List <Tax> taxList = manager.RetrieveAllTax(); List <Product> productList = manager.RetrieveAllProducts(); decimal editArea; OrderLookupResponse lookupResponse = manager.LookupOrder(new DateTime(2021, 01, 01), 1); if (lookupResponse.Success) { if (!string.IsNullOrEmpty(editCustomerName)) // IF THEY DID NOT LEAVE IT BLANK, { lookupResponse.Order.CustomerName = editCustomerName; // UPDATE IT TO WHATEVER THEY PUT IN. } if (!string.IsNullOrEmpty(editStateAbbreviation)) { lookupResponse.Order.State = editStateAbbreviation.ToUpper(); } if (!string.IsNullOrEmpty(editProductType)) { lookupResponse.Order.ProductType = editProductType; } if (!string.IsNullOrEmpty(editAreaInput)) // IF THE AREA STRING IS NOT BLANK { if (!decimal.TryParse(editAreaInput, out editArea)) // CHECK TO MAKE SURE THE STRING CAN BE PARSED TO DECIMAL { // IF IT CAN'T, TELL THEM TO LEAVE IT UNCHANGED OR GIVE A VALID DECIMAL lookupResponse.Success = false; } else { if (editArea < 100) // IF THEY'VE PROVIDED A VALID DECIMAL TO CHANGE IT TO, CHECK IT'S OVER 100. { lookupResponse.Success = false; } lookupResponse.Order.Area = editArea; // UPDATE THE AREA TO WHATEVER THEY PUT IN. } if (changesMade == 0) { AddOrderResponse addResponse1 = new AddOrderResponse(); addResponse1 = manager.AddOrder(lookupResponse.Order); Assert.AreEqual(expectedResult, addResponse1.Success); } else if (changesMade != 0) { AddOrderResponse addResponse2 = new AddOrderResponse(); CalculateOrderResponse calculateResponse = manager.CalculateOrder(lookupResponse.Order); if (calculateResponse.Success) { addResponse2 = manager.AddOrder(calculateResponse.Order); } Assert.AreEqual(expectedResult, addResponse2.Success); } } } }