public void CanOnlyAssignValidOrderNumbers(string date, bool expected) { OrderManager manager = OrderManagerFactory.Create(); Order order = new Order(); GetDateResponse response = manager.FindOrdersOnDate(date, FunctionType.DisplayOrders); List <Order> orders = manager.RetrieveOrdersOnDate(response); GetOrderNumberResponse number = manager.AssignOrderNumber(orders); order.OrderNumber = number.OrderNumber; bool actual = (order.OrderNumber == 1 && orders == null || order.OrderNumber == orders.Max(o => o.OrderNumber) + 1); Assert.AreEqual(expected, actual); }
public void Execute() { DateTime orderInputDate; string orderStringDate; Order newOrder = new Order(); string stateInput = ""; string productInput = ""; string confirmOrderinput; bool addOrder = false; Console.Clear(); Console.WriteLine("Add Order"); orderInputDate = DateTime.Parse(ConsoleIO.GetFutureDateFromUser("Enter a future date for this new order: ")); orderStringDate = orderInputDate.ToString("MMddyyyy"); newOrder.OrderDate = orderInputDate; var getOrders = manager.LookupAddOrder(newOrder.OrderDate); newOrder.OrderNumber = OrderManager.AssignOrderNumber(manager.LookupAddOrder(newOrder.OrderDate)); newOrder.CustomerName = ConsoleIO.GetRequiredStringFromUser("Enter Customer Name: "); GetRequiredStateFromUser("Enter a state for this order:", stateInput); newOrder.State = taxResponse.StateTaxInfo.StateAbbreviation; newOrder.TaxRate = taxResponse.StateTaxInfo.TaxRate; GetRequiredProductTypeFromUser("Enter a product type for this Customer's order. (Carpet, Laminate, Tile, Wood)", productInput); newOrder.ProductType = productResponse.ProductInfo.ProductType; newOrder.CostPerSquareFoot = productResponse.ProductInfo.CostPerSquareFoot; newOrder.LaborCostPerSquareFoot = productResponse.ProductInfo.LaborCostPerSquareFoot; newOrder.Area = ConsoleIO.GetRequiredAreaFromUser("Enter total area of order. Must be greater than 100."); newOrder.LaborCost = newOrder.Area * newOrder.LaborCostPerSquareFoot; newOrder.MaterialCost = newOrder.Area * newOrder.CostPerSquareFoot; newOrder.Tax = ((newOrder.MaterialCost + newOrder.LaborCost) * (newOrder.TaxRate / 100)); newOrder.Total = (newOrder.MaterialCost + newOrder.LaborCost + newOrder.Tax); while (addOrder == false) { Console.Clear(); Console.WriteLine(ConsoleIO.OrderFormat, newOrder.OrderNumber, orderInputDate.ToShortDateString(), newOrder.CustomerName, newOrder.State, newOrder.ProductType, newOrder.MaterialCost, newOrder.LaborCost, newOrder.Tax, newOrder.Total); Console.WriteLine("Would you like to add this order? Enter Y or N."); confirmOrderinput = Console.ReadLine(); if (confirmOrderinput.ToUpper() == "N") { Console.WriteLine("Order discarded"); Console.WriteLine("Press any key to return to main menu"); Console.ReadLine(); addOrder = true; } if (confirmOrderinput.ToUpper() == "Y") { ProcessOrder(newOrder); addOrder = true; } } }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); bool validInput = false; GetDateResponse response = null; while (!validInput) { string date = Query.GetDateFromUser(); response = manager.FindOrdersOnDate(date, FunctionType.AddOrder); if (response.Success) { validInput = true; } else { Alert.AlertUserInvalidInput(response); } } if (response.FileExists) { List <Order> ordersFromFile = manager.RetrieveOrdersOnDate(response); Order order = CreateNewOrder(); bool confirmingSave = true; bool willSave = false; while (confirmingSave) { Console.Clear(); order.AddOrderFormat(); willSave = Prompt.ConfirmChanges(1); if (!willSave) { confirmingSave = Prompt.IsUserSure(); } else { confirmingSave = false; } } if (willSave) { GetOrderNumberResponse saveResponse = manager.AssignOrderNumber(ordersFromFile); if (saveResponse.Success) { order.OrderNumber = saveResponse.OrderNumber; ordersFromFile.Add(order); manager.SaveOrdersToFile(ordersFromFile, response.FilePath); } else { Alert.AlertUserInvalidInput(saveResponse); } } } else { List <Order> newOrderList = new List <Order>(); Order order = CreateNewOrder(); bool confirmingSave = true; bool willSave = false; while (confirmingSave) { Console.Clear(); order.AddOrderFormat(); willSave = Prompt.ConfirmChanges(1); if (!willSave) { confirmingSave = Prompt.IsUserSure(); } else { confirmingSave = false; } } if (willSave) { var fs = File.Create(response.FilePath); fs.Close(); order.OrderNumber = 1; newOrderList.Add(order); manager.SaveOrdersToFile(newOrderList, response.FilePath); } } }