Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }