public static GetOrderNumberResponse GenerateOrderNumber(List <Order> orders) { GetOrderNumberResponse response = new GetOrderNumberResponse(); response.Success = true; int newOrderNumber = int.MinValue; if (orders == null || orders.Count == 0) { response.OrderNumber = 1; return(response); } else { newOrderNumber = orders.Max(o => o.OrderNumber) + 1; foreach (Order o in orders) { if (newOrderNumber <= o.OrderNumber) { response.Success = false; response.Message = "ERROR : ORDER NUMBER GENERATOR FAILURE DETECTED, ORDER NOT SAVED, DEVELOPER ISSUE"; } } if (response.Success) { response.OrderNumber = newOrderNumber; } } return(response); }
public static GetOrderNumberResponse GetOrderNumber(string orderNumber) { GetOrderNumberResponse response = new GetOrderNumberResponse(); int number = int.MinValue; if (int.TryParse(orderNumber, out number)) { if (number > 0) { response.OrderNumber = number; response.Success = true; return(response); } else { response.Success = false; response.Message = "That was not a valid order number."; return(response); } } else { response.Success = false; response.Message = "That was not a valid order number."; return(response); } }
public GetOrderNumberResponse SelectOrderWithOrderNumber(string orderNumber) { GetOrderNumberResponse response = new GetOrderNumberResponse(); response = OrderNumberParsesRule.GetOrderNumber(orderNumber); return(response); }
public GetOrderNumberResponse AssignOrderNumber(List <Order> orders) { GetOrderNumberResponse response = new GetOrderNumberResponse(); response = OrderNumberGeneratorRule.GenerateOrderNumber(orders); return(response); }
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 GetOrderNumberResponse GetOrderNumber(DateTime orderDate) { GetOrderNumberResponse response = new GetOrderNumberResponse(); response.OrderNumber = _orderRepository.GetOrderNumber(orderDate); if (response.OrderNumber == null) { response.Success = false; response.Message = $"There was an error with the program. Contact IT."; } else { response.Success = true; } return(response); }
public void CanSelectOrderWithOrderNumber(string date, string orderNumber, bool expected) { OrderManager manager = OrderManagerFactory.Create(); GetDateResponse response = manager.FindOrdersOnDate(date, FunctionType.DisplayOrders); List <Order> orders = manager.RetrieveOrdersOnDate(response); GetOrderNumberResponse number = manager.SelectOrderWithOrderNumber(orderNumber); bool actual = number.Success; foreach (Order o in orders) { if (number.OrderNumber == o.OrderNumber) { actual = true; break; } else { continue; } } Assert.AreEqual(expected, actual); }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); bool validDate = false; GetDateResponse dateResponse = null; while (!validDate) { string date = Query.GetDateFromUser(); dateResponse = manager.FindOrdersOnDate(date, FunctionType.RemoveOrder); if (dateResponse.Success) { validDate = true; } else { Alert.AlertUserInvalidInput(dateResponse); } } if (dateResponse.FileExists) { List <Order> orders = manager.RetrieveOrdersOnDate(dateResponse); GetOrderNumberResponse orderNumberResponse = null; bool validOrderNumber = false; Order order = null; while (!validOrderNumber) { string orderNumber = Query.GetOrderNumberFromUser(); orderNumberResponse = manager.SelectOrderWithOrderNumber(orderNumber); if (orderNumberResponse.Success) { foreach (Order o in orders) { if (o.OrderNumber == orderNumberResponse.OrderNumber) { order = o; validOrderNumber = true; } else { continue; } } if (!validOrderNumber) { Alert.OrderNumberNotOnList(orderNumberResponse.OrderNumber); } } else { Alert.AlertUserInvalidInput(orderNumberResponse); } } bool confirmingRemove = true; while (confirmingRemove) { Console.Clear(); order.DisplayOrdersFormat(dateResponse.Date); if (Prompt.ConfirmChanges(3)) { if (Prompt.IsUserSure()) { orders.Remove(order); manager.SaveOrdersToFile(orders, dateResponse.FilePath); confirmingRemove = false; } else { confirmingRemove = false; } } else { confirmingRemove = false; } } } }
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); } } }
public void Execute() { OrderManager manager = OrderManagerFactory.Create(); bool validInput = false; GetDateResponse dateResponse = null; while (!validInput) { string date = Query.GetDateFromUser(); dateResponse = manager.FindOrdersOnDate(date, FunctionType.EditOrder); if (dateResponse.Success) { validInput = true; } else { Alert.AlertUserInvalidInput(dateResponse); } } if (dateResponse.FileExists) { List <Order> orders = manager.RetrieveOrdersOnDate(dateResponse); foreach (Order o in orders) { GetProductResponse fillInProducts = manager.AssignProductInfo(o.ProductType, FunctionType.EditOrder); GetTaxesResponse fillInTaxes = manager.AssignTaxInfo(o.State, FunctionType.EditOrder); o.Product = fillInProducts.Product; o.Taxes = fillInTaxes.Taxes; } GetOrderNumberResponse orderNumberResponse = null; bool validOrderNumber = false; int index = int.MinValue; while (!validOrderNumber) { string orderNumber = Query.GetOrderNumberFromUser(); orderNumberResponse = manager.SelectOrderWithOrderNumber(orderNumber); if (orderNumberResponse.Success) { if (orders.Exists(o => o.OrderNumber == orderNumberResponse.OrderNumber)) { index = orders.FindIndex(o => o.OrderNumber == orderNumberResponse.OrderNumber); validOrderNumber = true; } else { Alert.OrderNumberNotOnList(orderNumberResponse.OrderNumber); } } else { Alert.AlertUserInvalidInput(orderNumberResponse); } } QueryUserEditName(manager, orders, index); QueryUserEditTaxes(manager, orders, index); QueryUserEditProducts(manager, orders, index); QueryUserEditArea(manager, orders, index); bool confirmingSave = true; bool willSave = false; while (confirmingSave) { Console.Clear(); orders[index].DynamicDisplayFormat(); willSave = Prompt.ConfirmChanges(2); if (!willSave) { confirmingSave = Prompt.IsUserSure(); } else { confirmingSave = false; } } if (willSave) { manager.SaveOrdersToFile(orders, dateResponse.FilePath); } } }