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();
        }
Example #2
0
        public void Execute()
        {
            //Console.Clear();
            //Console.WriteLine("You are now in the Display All Orders by Date section");
            //Console.ReadKey();
            ConsoleIO.Header("\t~All of Date's Orders~");

            DateTime orderDate = ConsoleIO.DateLookupPrompt();

            //get date to search by then out in .create(...)
            FlooringManager manager = FlooringManagerFactory.Create(orderDate);

            ConsoleIO.Header("\t~All of Date's Orders~");
            Dictionary <int, Order> orderDictionary = manager.GetAllOrders(orderDate);

            if (manager.orderRepository.FileExists())
            {
                if (manager.orderRepository.LastOrder() == true)
                {
                    ConsoleIO.DisplayAllOrders(orderDictionary, true, true, orderDate);
                }
                else
                {
                    ConsoleIO.DisplayAllOrders(orderDictionary, true, false, orderDate);
                }
            }


            ConsoleIO.KeyToContinue();
            Console.ReadKey();
        }
        public void Execute()
        {
            IUserIO userIO = new UserIO();

            userIO.Clear();
            FlooringManager manager = FlooringFactoryManager.Create();
            Order           order   = new Order();

            userIO.WriteLine("CREATE NEW ORDER: ");
            userIO.WriteLine("");
            userIO.WriteLine(new string('=', 60));
            userIO.WriteLine("");
            order.OrderDate    = HelperMethods.GetDateTime("Please enter the date of order: ");
            order.CustomerName = HelperMethods.GetCustomerName("Please enter the customers name: ");
            order.State        = HelperMethods.GetStateTax(TaxRepository.GetTaxes());
            order.ProductType  = HelperMethods.GetProductInformation(ProductRepository.GetProducts());
            order.Area         = HelperMethods.GetDecimalFromString("Enter the Area: ");

            order = manager.CalculateOrder(order);
            userIO.DisplayOrder(order);

            if (HelperMethods.GetYesNoAnswerFromUser("Would you like to create this order?"))
            {
                userIO.WriteLine("Order has succesfully been created.");
                AddOrderResponse response = manager.AddOrder(order);
            }
            else
            {
                userIO.WriteLine("Order was not created.");
            }
        }
Example #4
0
        public void Execute()
        {
            IUserIO userIO = new UserIO();

            userIO.Clear();
            FlooringManager manager = FlooringFactoryManager.Create();

            userIO.WriteLine("DELETE ORDER:");
            userIO.WriteLine("");
            userIO.WriteLine(new string('=', 60));
            userIO.WriteLine("");
            DateTime          dateTime    = HelperMethods.GetDateTime("Enter the order date: ");
            int               OrderNumber = HelperMethods.GetIntFromUser("Enter the order number: ");
            EditOrderResponse response    = new EditOrderResponse();
            Order             order       = manager.GetOrderByOrderNumber(dateTime, OrderNumber);

            if (order == null)
            {
                response.Success = false;
                response.Message = "No orders exist with this date.";
            }
            else
            {
                userIO.DisplayOrder(order);
                if (HelperMethods.GetYesNoAnswerFromUser("Would you like to delete this order?"))
                {
                    manager.DeleteOrder(order);
                    response.Success = true;
                    response.Message = "Order successfully deleted.";
                }
            }
        }
Example #5
0
        public void CanLoadOrderTestData()
        {
            DateTime        orderDate = DateTime.Now;
            FlooringManager manager   = FlooringManagerFactory.Create(orderDate);

            DisplaySingleResponse response = manager.LookupOrder(1, (DateTime.Now));

            Assert.IsNotNull(response.Order);
            Assert.IsTrue(response.Success);
            Assert.AreEqual(1, response.Order.OrderNumber);
        }
Example #6
0
        static void Main(string[] args)
        {
            FlooringManager flooringManager = new FlooringManager();

            flooringManager.Startup();

            HomeScreen homeScreen = new HomeScreen();

            homeScreen.Display();

            Console.ReadLine();
        }
Example #7
0
        public void Execute()
        {
            ConsoleIO.Header("\t~Single Order~");
            DateTime orderDate = ConsoleIO.DateLookupPrompt();

            FlooringManager manager = FlooringManagerFactory.Create(orderDate);

            ConsoleIO.Header("\t~Single Order~");

            //check if file exists
            //if so:

            Dictionary <int, Order> orderDictionary = manager.GetAllOrders(orderDate);

            if (manager.orderRepository.FileExists())
            {
                if (manager.orderRepository.LastOrder() == true)
                {
                    //DisplaySingleResponse singleResponse = manager.GetOnlyOrder(orderDate);
                    //ConsoleIO.DisplaySingleOrder(singleResponse.Order, true);
                    ConsoleIO.DisplayAllOrders(orderDictionary, false, true, orderDate);
                }
                else
                {
                    int orderNumber = ConsoleIO.GetIntFromUser(ConsoleIO.OrderLookup());

                    DisplaySingleResponse response = manager.LookupOrder(orderNumber, orderDate);

                    if (response.Success)
                    {
                        ConsoleIO.Header("\t~Single Order~");
                        ConsoleIO.DisplaySingleOrder(response.Order, true);
                    }
                    else
                    {
                        //ConsoleIO.ErrorOccurred();
                        //not sure how to put this into ConsoleIO
                        //Console.WriteLine(response.Message);
                        Console.WriteLine();
                        ConsoleIO.InvalidOrder();
                    }
                }
            }

            //else:

            ConsoleIO.KeyToContinue();
            Console.ReadKey();
        }
Example #8
0
        public void Test()
        {
            FlooringManager.Configure(true);
            MockOrderRepo orderRepo = FlooringManager.Orders as MockOrderRepo;

            Assert.AreEqual(0, orderRepo.SavedOrders.Count);

            Func <OrderInfo, bool> mockFunction = (order) =>
            {
                Assert.AreEqual(order.CustomerName, "Test Name");
                return(true);
            };
            NewOrderInfo newOrder = new NewOrderInfo();

            newOrder.CustomerName = "Test Name";
            newOrder.Area         = 0;

            ProductInfo myProduct = new ProductInfo();

            myProduct.ProductType        = "carpet";
            myProduct.CostPerSqFoot      = 0;
            myProduct.LaborCostPerSqFoot = 0;
            newOrder.Product             = myProduct;

            StateInfo myState = new StateInfo();

            myState.StateAbbreviation = "MN";
            myState.StateName         = "Minnesota";
            myState.TaxRate           = 0;

            newOrder.State = myState;

            OrderManager.CreateOrder(newOrder, mockFunction);

            Assert.AreEqual(1, orderRepo.SavedOrders.Count);
            Assert.IsTrue(orderRepo.SavedOrders.ContainsKey(DateTime.Today));

            var todaysOrders = orderRepo.SavedOrders[DateTime.Today];

            Assert.AreEqual(1, todaysOrders.Count);
            Assert.AreEqual("Test Name", todaysOrders[0].CustomerName);
        }
        public void Execute()
        {
            IUserIO userIO = new UserIO();

            userIO.Clear();
            FlooringManager manager = FlooringFactoryManager.Create();

            userIO.WriteLine("EDIT ORDER:");
            userIO.WriteLine("");
            userIO.WriteLine(new string('=', 60));
            userIO.WriteLine("");
            DateTime          dateTime    = HelperMethods.GetDateTime("Enter the order date: ");
            int               OrderNumber = HelperMethods.GetIntFromUser("Enter the order number: ");
            EditOrderResponse response    = new EditOrderResponse();
            Order             oldOrder    = manager.GetOrderByOrderNumber(dateTime, OrderNumber);
            Order             order       = oldOrder;

            if (oldOrder == null)
            {
                response.Success = false;
                response.Message = "No orders exist with this date.";
            }
            else
            {
                order.CustomerName = HelperMethods.GetCustomerName($"Previous Name: {oldOrder.CustomerName}\n Please enter the customers name: ", oldOrder.CustomerName);
                Console.WriteLine($"Previous State: {oldOrder.State}");
                order.State = HelperMethods.GetStateTax(TaxRepository.GetTaxes(), oldOrder.State);
                Console.WriteLine($"Previous Product: {oldOrder.ProductType}");
                order.ProductType = HelperMethods.GetProductInformation(ProductRepository.GetProducts());
                order.Area        = HelperMethods.GetDecimalFromString($"Previous Area: {oldOrder.Area}\n Enter the Area: ", oldOrder.Area);
                userIO.DisplayOrder(order);
                if (HelperMethods.GetYesNoAnswerFromUser("Would you like to create this order?"))
                {
                    manager.DeleteOrder(oldOrder);
                    manager.AddOrder(order);
                    response.Success = true;
                    response.Message = "Order successfully added.";
                }
            }
        }
Example #10
0
        public void Execute()
        {
            ConsoleIO.Header("\t~Edit Order~");
            DateTime orderDate = ConsoleIO.DateLookupPrompt();

            FlooringManager    flooringManager   = FlooringManagerFactory.Create(orderDate);
            IOrderRepository   orderRepo         = flooringManager.orderRepository;
            IProductRepository productRepository = flooringManager.productRepository;
            ITaxRepository     taxRepository     = flooringManager.taxRepository;

            ConsoleIO.Header("\t~Edit Order~");
            Dictionary <int, Order> orderDictionary = flooringManager.GetAllOrders(orderDate);

            //Order singleOrder = orderDictionary.TakeWhile(o=>o.Value.OrderDate==orderDate)

            if (orderRepo.FileExists())
            {
                if (orderRepo.LastOrder() == true)
                {
                    ConsoleIO.DisplayAllOrders(orderDictionary, false, true, orderDate);
                    Console.WriteLine();
                    string input = ConsoleIO.YOrNMessage("edit");
                    if (input == "Y")
                    {
                        DisplaySingleResponse singleResponse = flooringManager.GetOnlyOrder(orderDate);

                        ConsoleIO.EditOrder(singleResponse.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                        ConsoleIO.Header("\t~Edit Order");
                        ConsoleIO.DisplaySingleOrder(singleResponse.Order, true);

                        do
                        {
                            singleResponse.Success = false;

                            string saveAnswer = ConsoleIO.SavePrompt().ToUpper();

                            if (saveAnswer == "Y")
                            {
                                //save and exit
                                //orderRepo.SaveOrder(response.Order);
                                orderRepo.CloseRepo(singleResponse.Order);
                                ConsoleIO.SaveCompleted();
                                singleResponse.Success = true;
                            }
                            else
                            {
                                string editAnswer = ConsoleIO.EditPrompt();
                                if (editAnswer == "Y")
                                {
                                    ConsoleIO.AllowEdit();
                                    ConsoleIO.KeyToContinue();
                                    Console.ReadKey();
                                    ConsoleIO.EditOrder(singleResponse.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                                    ConsoleIO.Header("\t~Edit Order~");
                                    ConsoleIO.DisplaySingleOrder(singleResponse.Order, true);
                                    //edit answer
                                }
                                else if (editAnswer == "N")
                                {
                                    ConsoleIO.ReturnMenu("saving");
                                    singleResponse.Success = true;
                                    //dont save and go back to main menu
                                }
                                else
                                {
                                    //go back to save prompt
                                    ConsoleIO.Header("\t~Edit Order~");
                                    ConsoleIO.DisplaySingleOrder(singleResponse.Order, true);
                                    continue;
                                }
                            }
                        } while (singleResponse.Success != true);
                        //orderRepo.DeleteOrderFile();
                        //Console.WriteLine();
                        //ConsoleIO.OrderRemoved(0, true);
                        //ConsoleIO.KeyToContinue();
                        //Console.ReadKey();
                    }
                    //else
                    //{
                    //    //string editAnswer = ConsoleIO.EditPrompt();
                    //    //if (editAnswer == "Y")
                    //    //{
                    //    //    ConsoleIO.AllowEdit();
                    //    //    ConsoleIO.KeyToContinue();
                    //    //    Console.ReadKey();
                    //    //    ConsoleIO.EditOrder(response.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                    //    //    ConsoleIO.Header("\t~Edit Order~");
                    //    //    ConsoleIO.DisplaySingleOrder(response.Order, true);
                    //    //    //edit answer
                    //    //}
                    //    //else if (editAnswer == "N")
                    //    //{
                    //    //    ConsoleIO.ReturnMenu("saving");
                    //    //    response.Success = true;
                    //    //    //dont save and go back to main menu
                    //    //}
                    //    //else
                    //    //{
                    //    //    //go back to save prompt
                    //    //    ConsoleIO.Header("\t~Edit Order~");
                    //    //    ConsoleIO.DisplaySingleOrder(response.Order, true);
                    //    //    continue;
                    //    //}
                    //}
                }
                else
                {
                    ConsoleIO.Header("\t~Edit Order~");
                    int orderNumber = ConsoleIO.GetIntFromUser(ConsoleIO.OrderLookup());

                    DisplaySingleResponse response = flooringManager.LookupOrder(orderNumber, orderDate);

                    if (response.Success)
                    {
                        ConsoleIO.Header("\t~Edit Order~");
                        ConsoleIO.DisplaySingleOrder(response.Order, true);
                        Console.WriteLine();
                        string input = ConsoleIO.YOrNMessage("edit");
                        if (input == "Y")
                        {
                            ConsoleIO.EditOrder(response.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                            ConsoleIO.Header("\t~Edit Order");
                            ConsoleIO.DisplaySingleOrder(response.Order, true);
                            do
                            {
                                response.Success = false;

                                string saveAnswer = ConsoleIO.SavePrompt().ToUpper();

                                if (saveAnswer == "Y")
                                {
                                    //save and exit
                                    //orderRepo.SaveOrder(response.Order);
                                    orderRepo.CloseRepo(response.Order);
                                    ConsoleIO.SaveCompleted();
                                    response.Success = true;
                                }
                                else
                                {
                                    string editAnswer = ConsoleIO.EditPrompt();
                                    if (editAnswer == "Y")
                                    {
                                        ConsoleIO.AllowEdit();
                                        ConsoleIO.KeyToContinue();
                                        Console.ReadKey();
                                        ConsoleIO.EditOrder(response.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                                        ConsoleIO.Header("\t~Edit Order~");
                                        ConsoleIO.DisplaySingleOrder(response.Order, true);
                                        //edit answer
                                    }
                                    else if (editAnswer == "N")
                                    {
                                        ConsoleIO.ReturnMenu("saving");
                                        response.Success = true;
                                        //dont save and go back to main menu
                                    }
                                    else
                                    {
                                        //go back to save prompt
                                        ConsoleIO.Header("\t~Edit Order~");
                                        ConsoleIO.DisplaySingleOrder(response.Order, true);
                                        continue;
                                    }
                                }
                            } while (response.Success != true);
                        }
                    }
                }
            }
            else
            {
                ConsoleIO.InvalidOrder();
                ConsoleIO.KeyToContinue();
                Console.ReadKey();
            }

            //else
            //{
            //    ConsoleIO.KeyToContinue();
            //    Console.ReadKey();
            //}
        }
Example #11
0
        public void Execute()
        {
            ConsoleIO.Header("\t~Add Order~");
            DateTime orderDate = ConsoleIO.GetOrderDate();

            FlooringManager    flooringManager   = FlooringManagerFactory.Create(orderDate);
            IOrderRepository   orderRepo         = flooringManager.orderRepository;
            IProductRepository productRepository = flooringManager.productRepository;
            ITaxRepository     taxRepository     = flooringManager.taxRepository;

            //if (!orderRepo.FileExists())
            //{

            //}
            ConsoleIO.Header("\t~Add Order~");
            string custName = ConsoleIO.GetInputFromUser(ConsoleIO.GetCustName());

            ConsoleIO.Header("\t~Add Order~");
            string state = ConsoleIO.GetCustStateAbbrv(flooringManager.GetAllTaxes(), "\t~Add Order~", false, "");

            ConsoleIO.Header("\t~Add Order~");
            string prodType = ConsoleIO.GetProd(flooringManager.GetAllProducts(), false, "\t~Add Order~", "");

            ConsoleIO.Header("\t~Add Order~");
            decimal area = ConsoleIO.GetArea();

            Product prodChosen = productRepository.GetOrderProd(prodType);
            Tax     taxChosen  = taxRepository.GetOrderTax(state);

            decimal taxRate      = taxChosen.TaxRate;
            decimal cost         = prodChosen.CostPerSquareFoot;
            decimal labor        = prodChosen.LaborCostPerSquareFoot;
            decimal materialCost = area * cost;
            decimal laborCost    = area * labor;
            decimal tax          = ((materialCost + laborCost) * (taxRate / 100));
            decimal total        = materialCost + laborCost + tax;

            Console.Clear();
            AddOrderResponse response = flooringManager.AddOrder(orderDate, custName, state, prodType, area, taxRate, cost, labor, materialCost, laborCost, tax, total, prodChosen);

            //display order after calculations
            do
            {
                ConsoleIO.Header("\t~Add Order~");
                ConsoleIO.DisplaySingleOrder(response.Order, false);
                string saveAnswer = ConsoleIO.SavePrompt().ToUpper();

                if (saveAnswer == "Y")
                {
                    //save and exit
                    orderRepo.SaveOrder(response.Order);
                    orderRepo.CloseRepo(response.Order);
                    Console.WriteLine();
                    ConsoleIO.SaveCompleted();
                    response.Success = true;
                }
                else
                {
                    string editAnswer = ConsoleIO.EditPrompt();
                    if (editAnswer == "Y")
                    {
                        Console.WriteLine();
                        ConsoleIO.AllowEdit();
                        ConsoleIO.KeyToContinue();
                        Console.ReadKey();
                        ConsoleIO.EditOrder(response.Order, flooringManager.GetAllTaxes(), flooringManager.GetAllProducts());
                        //edit answer
                    }
                    else if (editAnswer == "N")
                    {
                        Console.WriteLine();
                        ConsoleIO.ReturnMenu("saving");
                        response.Success = true;
                        //dont save and go back to main menu
                    }
                    else
                    {
                        //go back to save prompt
                        continue;
                    }
                }
            } while (response.Success != true);



            ConsoleIO.KeyToContinue();
            Console.ReadKey();
        }
Example #12
0
        public void Execute()
        {
            //bool invalidDate;
            //do
            //{
            //    invalidDate = true;
            ConsoleIO.Header("\t~Remove Order~");
            DateTime orderDate = ConsoleIO.DateLookupPrompt();

            FlooringManager    flooringManager   = FlooringManagerFactory.Create(orderDate);
            IOrderRepository   orderRepo         = flooringManager.orderRepository;
            IProductRepository productRepository = flooringManager.productRepository;
            ITaxRepository     taxRepository     = flooringManager.taxRepository;

            ConsoleIO.Header("\t~Remove Order~");
            Dictionary <int, Order> orderDictionary = flooringManager.GetAllOrders(orderDate);

            //if (!orderRepo.FileExists())
            //{
            //    //Console.WriteLine();
            //    //ConsoleIO.InvalidDate();
            //    ConsoleIO.TryAgain();
            //    Console.ReadKey();
            //}
            //else
            if (orderRepo.FileExists())
            {
                if (orderRepo.LastOrder() == true)
                {
                    ConsoleIO.DisplayAllOrders(orderDictionary, false, true, orderDate);
                    Console.WriteLine();
                    string input = ConsoleIO.YOrNMessage("remove");
                    if (input == "Y")
                    {
                        orderRepo.DeleteOrderFile();
                        Console.WriteLine();
                        ConsoleIO.OrderRemoved(0, true);
                        ConsoleIO.KeyToContinue();
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine();
                        ConsoleIO.ReturnMenu("removing");
                        ConsoleIO.KeyToContinue();
                        Console.ReadKey();
                    }
                }
                else
                {
                    ConsoleIO.Header("\t~Remove Order~");
                    int orderNumber = ConsoleIO.GetIntFromUser(ConsoleIO.OrderLookup());

                    DisplaySingleResponse response = flooringManager.LookupOrder(orderNumber, orderDate);
                    //if (response.Success)
                    //{
                    ConsoleIO.DisplaySingleOrder(response.Order, true);
                    Console.WriteLine();
                    string input = ConsoleIO.YOrNMessage("remove");
                    if (input == "Y")
                    {
                        while (orderRepo.RemoveOrder(response.Order.OrderNumber) == false)
                        {
                            ConsoleIO.InvalidOrder();
                            ConsoleIO.TryAgain();
                        }
                        //{
                        //    ConsoleIO.InvalidOrder(orderNumber.ToString());
                        //    ConsoleIO.TryAgain();
                        //} while (orderRepo.RemoveOrder(orderNumber) == false);


                        Console.WriteLine();
                        ConsoleIO.OrderRemoved(orderNumber, false);
                        orderRepo.CloseRepo(response.Order);
                        ConsoleIO.KeyToContinue();
                        Console.ReadKey();
                    }
                }
                //invalidDate = false;

                //}
                //else
                //{
                //    ConsoleIO.ErrorOccurred();
                //    Console.WriteLine(response.Message);
                //}
            }
            else
            {
                ConsoleIO.KeyToContinue();
                Console.ReadKey();
            }

            //} while (invalidDate);
        }