public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Lookup an order");
            Console.WriteLine(ConsoleIO.LineBar);
            Console.Write("Enter the order date: (MMDDYYYY): ");
            string orderDate = Console.ReadLine();

            DisplayOrderResponse response = manager.DisplayOrders(orderDate);

            Console.Clear();

            if (response.Success)
            {
                var orders = response.Orders;
                foreach (var order in orders)
                {
                    ConsoleIO.DisplayOrderDetails(order);
                }
            }
            else
            {
                Console.WriteLine("An error occurred: ");
                Console.WriteLine(response.Message);
            }

            Console.WriteLine("Press any key to return to the main menu...");
            Console.ReadKey();
        }
Exemplo n.º 2
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Lookup orders for a day");
            Console.WriteLine("--------------------------");

            DateTime orderDate = ConsoleIO.GetDate();

            DisplayOrderResponse response = manager.LookupOrder(orderDate);

            if (response.Success)
            {
                ConsoleIO.DisplayOrderDetails(response.Order);
            }
            else
            {
                Console.WriteLine("An error occurred: ");
                Console.WriteLine(response.Message);
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
        public void Execute()
        {
            IUserIO userIO = new UserIO();
            DisplayOrderResponse response = new DisplayOrderResponse();
            FlooringManager      manager  = FlooringFactoryManager.Create();

            userIO.Clear();
            userIO.WriteLine("DISPLAY ORDER: ");
            userIO.WriteLine("");
            userIO.WriteLine(new string('=', 60));
            userIO.WriteLine("");
            List <Order> orders = manager.GetOrdersByDate(HelperMethods.GetDateTime("Enter an order date: "));

            if (orders == null || orders.Count == 0)
            {
                response.Success = false;
                response.Message = ("No order exists with that date.");
            }
            else
            {
                response.Success = true;
            }
            if (response.Success)
            {
                userIO.DisplayOrders(orders);
            }
            else
            {
                userIO.WriteLine("An error has occured: ");
                userIO.WriteLine(response.Message);
            }
            userIO.WriteLine("Press any key to continue.");
            userIO.ReadKey();
        }
Exemplo n.º 4
0
        public void CanLookupAccount(DateTime orderDate, bool expected)
        {
            OrderManager         orderManager = OrderManagerFactory.create(orderDate);
            DisplayOrderResponse response     = orderManager.LookupOrder();

            Assert.AreEqual(expected, response.Success);
        }
Exemplo n.º 5
0
        public void Execute()
        {
            OrderManager orderManager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Display Orders");
            Console.WriteLine("--------------------------------");

            Console.Write("Enter order date: ");

            DateTime orderDate = ConsoleIO.GetRequiredDateFromUser("Enter order date. Ex. MM/DD/YYYYY : ");

            DisplayOrderResponse response = orderManager.DisplayOrder(orderDate);

            if (response.Success)
            {
                ConsoleIO.DisplayListOrderDetails(response.ListOfOrders);
            }
            else
            {
                Console.WriteLine("An error occurerd: ");
                Console.WriteLine(response.Message);
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
Exemplo n.º 6
0
        public AddOrderResponse AddOrder(Orders order)
        {
            DisplayOrderResponse orderResponse = new DisplayOrderResponse();

            orderResponse.orders = _orderRepository.DisplayOrder();

            AddOrderResponse addResponse = new AddOrderResponse();

            addResponse.orders = order;
            if (orderResponse.orders != null && orderResponse.orders.Where(c => c.OrderNumber == order.OrderNumber).Count() > 0)
            {
                addResponse.Success = false;
                addResponse.Message = $"{order.OrderNumber} is already existed.";
                return(addResponse);
            }

            if (!_orderRepository.AddOrder(order))
            {
                addResponse.Success = false;
                addResponse.Message = $"Cannot add {order.OrderNumber}.";
            }
            else
            {
                addResponse.Success = true;
                addResponse.Message = $"Successfully added order {order.OrderNumber}.";
            }
            return(addResponse);
        }
Exemplo n.º 7
0
        public void DisplayOrderTest(string date, bool expected)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response = manager.DisplayOrders(date);

            Assert.AreEqual(response.Success, expected);
        }
Exemplo n.º 8
0
        public void CanLoadListOrderTestRepo()
        {
            OrderManager         manager  = new OrderManager(new OrdersTestRepo(), new ProductTestRepo(), new TaxTestRepo());
            DisplayOrderResponse response = manager.DisplayOrder(new DateTime(2017, 09, 19));

            Assert.IsNotNull(response.ListOfOrders);
            Assert.IsTrue(response.Success);
        }
Exemplo n.º 9
0
        public void CanDisplayOrder(string orderDate)
        {
            OrderManager manager = OrderManagerFactory.Create();

            DisplayOrderResponse response = manager.DisplayOrders(orderDate);

            Assert.IsNotNull(response.Order);
            Assert.IsTrue(response.Success);
            Assert.AreEqual(orderDate, response.Order.OrderNumber);
        }
Exemplo n.º 10
0
        public void Execute()
        {
            OrderManager orderManager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Remove Order");
            Console.WriteLine("--------------------------------");

            DateTime orderDate = ConsoleIO.AskEditDateTime("Enter order date: ");

            DisplayOrderResponse displayResponse = orderManager.DisplayOrder(orderDate);

            if (displayResponse.Success)
            {
                ConsoleIO.DisplayListOrderDetails(displayResponse.ListOfOrders);
            }
            else
            {
                Console.WriteLine("An error occurerd: ");
                Console.WriteLine(displayResponse.Message);
            }

            int orderNumber = ConsoleIO.GetRequiredIntFromUser("Enter order number: ");

            EditOrderResponse editResponse = orderManager.EditOrder(orderDate, orderNumber);

            if (!editResponse.Success)
            {
                Console.WriteLine("An error occured");
                Console.WriteLine(editResponse.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine();
                ConsoleIO.DisplayOrderDetails(editResponse.Order);
                Console.WriteLine();
                if (ConsoleIO.GetYesNoAnswerFromUser("Are you sure you want to remove this order?") == "Y")
                {
                    //need to update instead of save.
                    orderManager.RemoveOrder(editResponse.Order);
                    Console.WriteLine("Order removed");
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
                else
                {
                    Console.WriteLine("Remove Cancelled");
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
            }
        }
Exemplo n.º 11
0
        public void CanPersistOrderRemoval()
        {
            OrderManager manager = new OrderManager(new OrdersTestRepo(), new ProductTestRepo(), new TaxTestRepo());

            AddOrderResponse addResponse = manager.AddOrder(new DateTime(2017, 09, 10), "Unit Testing", "OH", "wood", 100, 0);

            manager.RemoveOrder(addResponse.Order);

            DisplayOrderResponse displayResponse = manager.DisplayOrder(new DateTime(2017, 09, 10));

            Assert.IsNotNull(displayResponse.ListOfOrders);
            Assert.AreEqual(displayResponse.ListOfOrders.Count, 0);
            Assert.IsTrue(displayResponse.Success);
        }
Exemplo n.º 12
0
        public void CanSaveOrder()
        {
            OrderManager manager = new OrderManager(new OrdersTestRepo(), new ProductTestRepo(), new TaxTestRepo());

            Order order = AutoFixtureHelper.CreateOrder();

            manager.AddToOrderRepo(order);

            DisplayOrderResponse response = manager.DisplayOrder(order.OrderDate);

            Assert.IsNotNull(response.ListOfOrders);
            Assert.IsTrue(response.Success);
            Assert.AreEqual(order.OrderNumber, 1); //Tests the GetORderNumberBasedOnDateMethod
        }
Exemplo n.º 13
0
        public DisplayOrderResponse DisplayOrder(DateTime orderDate)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.ListOfOrders = _orderRepo.LoadListOrder(orderDate);

            if (response.ListOfOrders.Count == 0)
            {
                response.Success = false;
                response.Message = $"There were no orders for {orderDate.ToString("MM/dd/yyyyy")}";
            }
            else
            {
                response.Success = true;
            }
            return(response);
        }
Exemplo n.º 14
0
        public DisplayOrderResponse LookupOrder()
        {
            DisplayOrderResponse orderResponse = new DisplayOrderResponse();

            orderResponse.orders = _orderRepository.DisplayOrder();
            if (orderResponse.orders is null)
            {
                orderResponse.Success = false;
                //orderResponse.Message = $"{orderNumber} is not a valid order number.";
                orderResponse.Message = "Cannot load order.";
            }
            else
            {
                orderResponse.Success = true;
            }
            return(orderResponse);
        }
Exemplo n.º 15
0
        public DisplayOrderResponse DisplayOrders(string date)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.Orders = _orderRepository.LoadOrders(date);

            if (response.Orders.Count == 0)
            {
                response.Success = false;
            }
            else
            {
                response.Success = true;
            }

            return(response);
        }
Exemplo n.º 16
0
        //public List<FlooringProduct> GetProducts()
        //{
        //    List<FlooringProduct> products = _productRepo.LoadProducts();
        //    return products;
        //}

        public DisplayOrderResponse LoadOrders(string FILENAME)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.Orders = _orderRepository.LoadOrders(FILENAME);

            if (response.Orders.Count == 0)
            {
                response.Success = false;
                response.Message = "get help!";
            }
            else
            {
                response.Success = true;
            }
            return(response);
        }
Exemplo n.º 17
0
        public void Execute()
        {
            bool isValidDate = false;
            bool idValid     = false;

            int userId = 0;

            Console.Clear();

            while (isValidDate == false)
            {
                dateString      = io.PromptUserForDate("What date would you like to look up: ");
                userDate        = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));
                displayResponse = manager.DisplayOrders(dateString);

                if (displayResponse.Success == true)
                {
                    foreach (Order order in displayResponse.Orders)
                    {
                        io.DisplayOrder(order, userDate);
                    }
                    isValidDate = true;
                }
            }

            userId = io.PromptUserForInt("What order would you like to remove: ");

            while (idValid == false)
            {
                foreach (Order order in displayResponse.Orders)
                {
                    if (userId == order.OrderNumber)
                    {
                        ConfirmRemoveOrder(order);
                        idValid = true;
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Please enter a vaild order number");
                    }
                }
            }
        }
Exemplo n.º 18
0
        public DisplayOrderResponse LookupOrder(DateTime orderDate)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.Order = _orderRepository.LoadOrders(orderDate);


            if (response.Order == null)
            {
                response.Success = false;
                response.Message = $"{orderDate} is not a valid date.";
            }
            else
            {
                response.Success = true;
            }

            return(response);
        }
Exemplo n.º 19
0
        public DisplayOrderResponse OrderLookup(DateTime date)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.Order = _ordersRepository.LoadOrder(date);

            if (response.Order.Count() == 0)
            {
                response.Success = false;
                response.Message = $"There were no orders on {date}.";
            }

            else
            {
                response.Date    = date;
                response.Success = true;
            }

            return(response);
        }
Exemplo n.º 20
0
        private void EditOrderDate()
        {
            bool isValidDate = false;

            while (isValidDate == false)
            {
                dateString      = io.PromptUserForDate("What date would you like to look up: ");
                userDate        = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));
                displayResponse = manager.DisplayOrders(dateString);

                if (displayResponse.Success == true)
                {
                    foreach (Order order in displayResponse.Orders)
                    {
                        io.DisplayOrder(order, userDate);
                    }
                    isValidDate = true;
                }
            }
        }
Exemplo n.º 21
0
        public DisplayOrderResponse DisplayOrders(string date)
        {
            DisplayOrderResponse response = new DisplayOrderResponse();

            response.Orders = new List <Order>();
            var orders = _orderRepository.ReadOrders(date);             //returns list of all orders from that order date

            if (orders == null || orders.Count == 0)
            {
                response.Success = false;
                response.Message = $"{date} is not a valid order date. Check your input.";
            }
            else
            {
                response.Success = true;
                response.Orders  = orders;                //returns list of orders
            }

            return(response);
        }
Exemplo n.º 22
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();

            Console.WriteLine("Display an order");
            Console.WriteLine("------------------------");
            string date = io.GetDateFromUser("Please provide a date");
            DisplayOrderResponse response = manager.LoadOrders(date);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            //no matter what date, it shows the hardcoded information from the test file

            Console.WriteLine("\nPress Enter to continue...");
            Console.ReadLine();
        }
        public void Execute()

        {
            OrderManager manager = OrderManagerFactory.Create();

            DateTime date = UserIO.GetDateFromUser("Enter the date the order was placed (example \"MM-DD-YYYY\"):");

            DisplayOrderResponse response = manager.OrderLookup(date);

            if (response.Success)
            {
                ConsoleIO.DisplayOrderDetails(response.Order, response.Date);
            }

            else
            {
                Console.WriteLine(response.Message);
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
            Console.Clear();
        }
        public void Execute()
        {
            ConsoleIO.ShowChoice("1.   Order Lookup");
            DateTime     orderDate;
            OrderManager orderManager;

            while (true)
            {
                orderDate    = ConsoleIO.inputDate("Enter order date (MMddyyyy): ");
                orderManager = OrderManagerFactory.create(orderDate);
                if (!orderManager.IfFileExist())
                {
                    Console.WriteLine("No order in this date!");
                    continue;
                }
                else
                {
                    break;
                }
            }

            DisplayOrderResponse response = orderManager.LookupOrder();

            if (response.Success)
            {
                for (int i = 0; i < response.orders.Count; i++)
                {
                    ConsoleIO.DisplayOrderDetail(response.orders[i]);
                }
            }
            else
            {
                Console.WriteLine("An error occurred: ");
                Console.WriteLine(response.Message);
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
Exemplo n.º 25
0
        public void Execute()
        {
            Console.Clear();

            string dateString = "";



            dateString = io.PromptUserForDate("What date would you like to look up: ");
            DateTime userDate = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

            response = manager.DisplayOrders(dateString);

            if (response.Success == true)
            {
                foreach (Order order in response.Orders)
                {
                    io.DisplayOrder(order, userDate);
                }
            }
            Console.WriteLine("Press enter to exit to main menu : ");
            Console.ReadLine();
        }
Exemplo n.º 26
0
        public void Execute()
        {
            OrderManager orderManager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Edit Orders");
            Console.WriteLine("--------------------------------");

            DateTime orderDate = ConsoleIO.AskEditDateTime("Enter order date: ");

            DisplayOrderResponse displayResponse = orderManager.DisplayOrder(orderDate);

            if (!displayResponse.Success)
            {
                Console.WriteLine("An error occurerd: ");
                Console.WriteLine(displayResponse.Message);
            }
            else
            {
                ConsoleIO.DisplayListOrderDetails(displayResponse.ListOfOrders);
                int orderNumber = ConsoleIO.GetRequiredIntFromUser("Enter order number: ");

                EditOrderResponse editResponse = orderManager.EditOrder(orderDate, orderNumber);

                if (!editResponse.Success)
                {
                    Console.WriteLine("An error occured");
                    Console.WriteLine(editResponse.Message);
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("Enter changes as they appear. If you wish not to change anything just press 'Enter': ");
                    string  customerName = ConsoleIO.AskEditCustomerName(editResponse.Order, $"Name: ({editResponse.Order.CustomerName})  ");
                    string  stateAbbrev  = ConsoleIO.AskEditStateAbbrev(editResponse.Order, $"State: ({editResponse.Order.State})  ");
                    string  productType  = ConsoleIO.AskEditProductType(editResponse.Order, $"Product Type: ({editResponse.Order.ProductType})  ");
                    decimal area         = ConsoleIO.AskEditArea(editResponse.Order, $"Area: ({editResponse.Order.Area})  ");

                    AddOrderResponse addResponse = orderManager.AddOrder(orderDate, customerName, stateAbbrev, productType, area, orderNumber);

                    if (!addResponse.Success)
                    {
                        Console.WriteLine("An error occured");
                        Console.WriteLine(addResponse.Message);
                        //Console.WriteLine("Press any key to continue...");
                        //Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine();
                        ConsoleIO.DisplayOrderDetails(addResponse.Order);
                        Console.WriteLine();
                        if (ConsoleIO.GetYesNoAnswerFromUser("Add the followng changes") == "Y")
                        {
                            //need to update instead of save.
                            orderManager.UpdateOrder(addResponse.Order);
                            Console.WriteLine("Order updated!");
                            //Console.WriteLine("Press any key to continue...");
                            //Console.ReadKey();
                        }
                        else
                        {
                            Console.WriteLine("Edits Cancelled");
                            //Console.WriteLine("Press any key to continue...");
                            //Console.ReadKey();
                        }
                    }
                }
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();

            /*Ask user for Orderdate and then orderNumber.
             * find order and load that order.
             * once order loaded, run through each property and ask if they'd like to change it. If no than re-assing to itself. if yes, assign it to new info.
             * once all fields have been fulfilled save like add to repo.*/
        }
Exemplo n.º 27
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Edit an order");
            Console.WriteLine("------------------------");
            bool     isValidDate = false;
            DateTime orderDate   = new DateTime();
            string   date1       = "";

            while (isValidDate == false)
            {
                date1 = io.GetDateFromUser("Please provide a date");

                orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (orderDate <= DateTime.Today)
                {
                    Console.WriteLine("Date must be later than today");
                }
                else
                {
                    isValidDate = true;
                }
            }

            DisplayOrderResponse response = manager.LoadOrders(date1);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            int  ordernumber   = -1;
            bool isValidNumber = false;

            while (isValidNumber == false)
            {
                string orderstring = io.GetStringFromUser("Please enter an order number.");
                if (!int.TryParse(orderstring, out ordernumber))
                {
                    Console.WriteLine("This did not work, please enter a number");
                }
                else
                {
                    foreach (var item in response.Orders)
                    {
                        if (item.OrderNumber == ordernumber)
                        {
                            newOrder = item;
                        }
                    }
                    isValidNumber = true;
                }
            }

            Console.WriteLine("");
            string newName = PromptUser("What would you like to change your name to?");

            if (newName != "")
            {
                while (!newName.All(c => Char.IsLetterOrDigit(c) || c == ',' || c == '_' || c == '.'))
                {
                    Console.WriteLine("Names must include either letters, numbers, spaces, periods, or commas (or any combonation thereof)");
                    newName = PromptUser("What is your name?");
                }
                newOrder.CustomerName = newName;
            }

            TaxStateResponse taxResponse = uo.LoadTax();
            FlooringTax      orderTax    = new FlooringTax();
            bool             isValidTax  = false;

            while (isValidTax == false)
            {
                foreach (FlooringTax tax in taxResponse.TaxRate)
                {
                    Console.WriteLine("  " + (taxResponse.TaxRate.IndexOf(tax) + 1) + ". " + tax.StateAbbreviation);
                }
                Console.WriteLine("Order is currently in " + newOrder.State);
                string newState = PromptUser("Enter a new state or press enter to continue.");
                if (newState != "")
                {
                    if (int.TryParse(newState, out int nation))
                    {
                        if (nation > 0 && nation <= taxResponse.TaxRate.Count)
                        {
                            newOrder.State   = taxResponse.TaxRate[nation - 1].StateAbbreviation;
                            newOrder.TaxRate = taxResponse.TaxRate[nation - 1].TaxRate;
                            isValidTax       = true;
                        }
                    }
                    else
                    {
                        Console.WriteLine("That state isn't in our region yet.");
                    }
                }
                else
                {
                    isValidTax = true;
                }
            }

            List <FlooringProduct> ProductList  = yo.LoadProducts();
            FlooringProduct        orderProduct = new FlooringProduct();
            bool isValidProduct = false;

            while (isValidProduct == false)
            {
                foreach (FlooringProduct prod in ProductList)
                {
                    Console.Write("  " + (ProductList.IndexOf(prod) + 1) + ". " + prod.ProductType);
                    Console.Write("   Cost per sqft $" + prod.CostPerSquareFoot);
                    Console.Write("   Cost for Labor per sqft $" + prod.LaborCostPerSquareFoot);
                    Console.WriteLine("\n");
                }
                Console.WriteLine("You have already chosen " + newOrder.ProductType);
                string newProduct = PromptUser("Please specifiy a different product or press enter to continue");
                if (newProduct != "")
                {
                    if (int.TryParse(newProduct, out int supply))
                    {
                        if (supply > 0 && supply <= ProductList.Count)
                        {
                            newOrder.ProductType            = ProductList[supply - 1].ProductType;
                            newOrder.LaborCostPerSquareFoot = ProductList[supply - 1].LaborCostPerSquareFoot;
                            newOrder.CostPerSquareFoot      = ProductList[supply - 1].CostPerSquareFoot;
                            isValidProduct = true;
                        }
                    }
                    else
                    {
                        Console.WriteLine("That product isn't available yet.");
                    }
                }
                else
                {
                    isValidProduct = true;
                }
            }

            decimal area1       = 0;
            bool    isValidArea = false;

            while (isValidArea == false)
            {
                area1 = newOrder.Area;
                string area = PromptUser("Please enter a new area or press enter to continue");

                if (area != "")
                {
                    if (decimal.TryParse(area, out area1))
                    {
                        if (area1 < 100)
                        {
                            Console.WriteLine("You must enter a positive amount above 100");
                            Console.WriteLine("Please enter a valid square footage.");
                        }
                        else
                        {
                            newOrder.Area = area1;
                            isValidArea   = true;
                        }
                    }
                }
                else
                {
                    isValidArea = true;
                }
            }

            //ask user for order number
            //if order exisits - ask user for each piece of order data && display exisiting data
            //if user presses Enter key without entering data - leave existing data in place

            //Only CustomerName, State, ProductType, Area can be changed
            //Order date may NOT change

            Console.Clear();
            io.DisplayOrderDetails(newOrder);

            bool isSave = false;

            while (isSave == false)
            {
                string place = PromptUser("Would you like to place this order? Please enter yes or no");
                if (place.ToLower() == "yes")
                {
                    EditOrderResponse editResponse = manager.EditOrder(date1, newOrder);  //still saving the new file even if selecting no
                    isSave = true;
                    // save final to file with approp date
                }
                else if (place.ToLower() == "no")
                {
                    isSave = true;
                    //return to main menu
                }
                else
                {
                    Console.WriteLine("Please enter yes or no");
                }
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            DateTime date = UserIO.GetDateFromUser("Enter the date the order was placed (example \"MM-DD-YYYY\"):");

            DisplayOrderResponse response = manager.OrderLookup(date);


            if (response.Success)
            {
                ConsoleIO.DisplayOrderDetails(response.Order, response.Date);
                Order order = UserIO.GetOrderFromUser("Which order would you like to remove? (Use Order ID) :", response.Order);

                Console.Clear();

                order.MaterialCost.ToString(); order.LaborCost.ToString(); order.Tax.ToString(); order.Total.ToString();

                string line = "{0, 5} {1, 10} {2, 12} {3,8} {4, 15} {5, 15} {6, 12} {7, 9} {8, 9}";
                Console.WriteLine(line, "Order ID", "Order Date", "Cust Name", "State", "Prod Type", "Material Cost", "Labor Cost", "Tax", "Total");
                Console.WriteLine("_______________________________________________________________________________________");
                string line2 = "{0, 5} {1, 12} {2, 9} {3, 10} {4, 14} {5, 12} {6, 16} {7, 11} {8, 11}";
                Console.WriteLine(line2, order.OrderNumber, date.ToString("MM/dd/yyyy"), order.CustomerName, order.State, order.ProductType, String.Format("{0:0.00}", order.MaterialCost), String.Format("{0:0.00}", order.LaborCost), String.Format("{0:0.00}", order.Tax), String.Format("{0:0.00}", order.Total));


                string input = null;

                while (input == null)
                {
                    input = UserIO.GetYesOrNoFromUser("Do you want to remove this order?");

                    if (string.IsNullOrEmpty(input))
                    {
                        Console.WriteLine("You must enter either Y or N");
                        Console.WriteLine("Press any key to try again");
                        Console.ReadKey();
                        input = null;
                    }

                    else
                    {
                        if (input != "Y" && input != "N")
                        {
                            Console.WriteLine("You must enter either Y or N");
                            Console.WriteLine("Press any key to try again");
                            Console.ReadKey();
                            input = null;
                        }

                        else if (input == "Y")
                        {
                            RemoveOrderResponse removeResponse = manager.OrderRemove(date, order.OrderNumber, order);

                            if (removeResponse.Success == true)
                            {
                                Console.WriteLine(removeResponse.Message);
                                Console.ReadKey();
                            }

                            else
                            {
                                Console.WriteLine(removeResponse.Message);
                                Console.ReadKey();
                            }
                        }

                        else if (input == "N")
                        {
                            Console.WriteLine("You have chosen to cancel the remove order request. It will not be removed. Press any to return to the main menuc");
                            Console.ReadKey();
                        }
                    }
                }
            }

            else
            {
                Console.WriteLine("There are no orders from that date.");
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            Console.Clear();
        }
Exemplo n.º 29
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Remove an order");
            Console.WriteLine("------------------------");
            bool     isValidDate = false;
            DateTime orderDate   = new DateTime();
            string   date1       = "";

            while (isValidDate == false)
            {
                date1 = io.GetDateFromUser("Please provide a date");

                orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (orderDate <= DateTime.Today)
                {
                    Console.WriteLine("Date must be later than today");
                }
                else
                {
                    isValidDate = true;
                }
            }

            DisplayOrderResponse response = manager.LoadOrders(date1);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            int  ordernumber   = -1;
            bool isValidNumber = false;

            while (isValidNumber == false)
            {
                string orderstring = io.GetStringFromUser("Please enter an order number.");
                if (!int.TryParse(orderstring, out ordernumber))
                {
                    Console.WriteLine("This did not work, please enter a number");
                }
                else
                {
                    foreach (var item in response.Orders)
                    {
                        if (item.OrderNumber == ordernumber)
                        {
                            newOrder = item;
                        }
                    }
                    isValidNumber = true;
                }
            }

            //if one order = delete entire file
            //if theres more than one order in date, remove the order number from list -> remove with LINQ
            //save list back to file for that date

            io.DisplayOrderDetails(newOrder);
            bool isSave = false;

            while (isSave == false)
            {
                string place = PromptUser("Are you entireley sure that you want to remove this order? Choose yes or no.");
                if (place.ToLower() == "yes")
                {
                    DeleteOrderResponse deleteResponse = manager.DeleteOrder(date1, newOrder.OrderNumber);
                    isSave = true;
                    // save final to file with approps date
                }
                else if (place.ToLower() == "no")
                {
                    isSave = true;
                }
                else
                {
                    Console.WriteLine("Please enter yes or no");
                }
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();
        }
Exemplo n.º 30
0
        public void LoadOrdersTest(string FILENAME, bool expectedResult)
        {
            DisplayOrderResponse response = manager.LoadOrders(FILENAME);

            Assert.AreEqual(expectedResult, response.Success);
        }