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 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 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); } } }