コード例 #1
0
        public DisplaySingleOrderResponse DisplayOrder(DateTime validatedDateTime, int validatedOrderNumber, OrderManager manager)
        {
            DisplaySingleOrderResponse response = manager.DisplayOrder(validatedDateTime, validatedOrderNumber);

            if (response.Success)
            {
                Console.WriteLine();
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine(" ORDER FOUND - DETAILS BELOW ");
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine();
                Console.WriteLine($" Order Number: {response.OrderDetails.OrderNumber.ToString()} | Order Date: {validatedDateTime.ToString("MM/dd/yyyy")}");
                Console.WriteLine($" Customer Name: {response.OrderDetails.CustomerName}");
                Console.WriteLine($" State: {response.OrderDetails.State}");
                Console.WriteLine($" Product: {response.OrderDetails.ProductType}");
                Console.WriteLine($" Materials: {response.OrderDetails.MaterialCost:c}");
                Console.WriteLine($" Labor: {response.OrderDetails.LaborCost:c}");
                Console.WriteLine($" Tax: {response.OrderDetails.Tax:c}");
                Console.WriteLine($" Total: {response.OrderDetails.Total:c}");

                Console.WriteLine();
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine(" ENTER ORDER UPDATES TO ANY OF THE FOUR EDITABLE FIELD BELOW ");
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine(" PRESS ENTER TO SKIP OVER CHANGING ANY FIELD ");
                Console.WriteLine(ConsoleIO.SeperatorBar);
            }
            return(response);
        }
コード例 #2
0
        public void ChangeArea(DisplaySingleOrderResponse response, OrderManager manager)
        {
            bool validArea = false;

            while (!validArea)
            {
                Console.Write(" Area: ");
                string newArea = (Console.ReadLine());

                if (!string.IsNullOrEmpty(newArea))
                {
                    decimal area = decimal.Parse(newArea);

                    if (area >= 100)
                    {
                        validArea = true;
                        response.OrderDetails.Area = area;
                    }
                    else
                    {
                        Console.WriteLine(" Please enter an area that meets the minimum of 100 SQ FT. ");
                    }
                }
                else
                {
                    validArea = true;
                }
            }
        }
コード例 #3
0
        public void ChangeState(DisplaySingleOrderResponse response)
        {
            bool validState = false;

            while (!validState)
            {
                Console.Write(" Enter State (with abbreviation or full name): ");
                string newState = (Console.ReadLine().ToUpper());

                if (!string.IsNullOrEmpty(newState))
                {
                    TaxManager taxManager = TaxManagerFactory.Create();
                    Tax        tax        = taxManager.TaxByState(newState);

                    if (tax != null)
                    {
                        validState = true;
                        response.OrderDetails.State = newState;
                    }
                    else
                    {
                        Console.WriteLine(" Please enter a VALID state. ");
                    }
                }
                else
                {
                    validState = true;
                }
            }
        }
コード例 #4
0
        public void ChangeProduct(DisplaySingleOrderResponse response)
        {
            bool validProduct = false;

            while (!validProduct)
            {
                Console.Write(" Product Choice: ");
                string newProductType = (Console.ReadLine().ToUpper());

                if (!string.IsNullOrEmpty(newProductType))
                {
                    ProductManager productManager = ProductManagerFactory.Create();
                    Product        product        = productManager.ProductType(newProductType);

                    if (product != null)
                    {
                        validProduct = true;
                        response.OrderDetails.ProductType = newProductType;
                    }
                    else
                    {
                        Console.WriteLine(" Please enter a VALID product. ");
                    }
                }
                else
                {
                    validProduct = true;
                }
            }
        }
コード例 #5
0
        public void Execute()
        {
            Console.Clear();
            OrderManager manager = OrderManagerFactory.Create();

            Console.WriteLine();
            Console.WriteLine(ConsoleIO.SeperatorBar);
            Console.WriteLine(" EDIT ORDER MENU ");
            Console.WriteLine(ConsoleIO.SeperatorBar);
            Console.WriteLine();

            DateTime validatedDate        = ValidateDate();
            int      validatedOrderNumber = ValidateOrderNumber();

            DisplaySingleOrderResponse response = DisplayOrder(validatedDate, validatedOrderNumber, manager);

            if (response.Success)
            {
                ChangeName(response);
                ChangeState(response);
                ChangeProduct(response);
                ChangeArea(response, manager);
            }
            else
            {
                Console.WriteLine(ConsoleIO.ErrorMessage);
                Console.WriteLine(response.Message);
                Console.ReadKey();
            }
        }
コード例 #6
0
        public void OrderManagerEditOrderTest(DateTime date, int orderNumber, string customerName, string state, string productType, decimal area, string expectedName, string expectedState, string expectedProduct, decimal expectedArea, bool expectedResult)
        {
            TestOrderRepository        testOrderRepo   = new TestOrderRepository();
            TestProductRepository      testProductRepo = new TestProductRepository();
            TestTaxRepository          testTaxRepo     = new TestTaxRepository();
            OrderManager               manager         = new OrderManager(testOrderRepo, testProductRepo, testTaxRepo);
            DisplaySingleOrderResponse singleResponse  = manager.GetOrderToEdit(date, orderNumber);

            Assert.AreEqual(singleResponse.Order.Date, date);
            Assert.AreEqual(singleResponse.Order.OrderNumber, orderNumber);
            Assert.AreEqual(singleResponse.Order.CustomerName, customerName);
            Assert.AreEqual(singleResponse.Order.State, state);
            Assert.AreEqual(singleResponse.Order.ProductType, productType);
            Assert.AreEqual(singleResponse.Order.Area, area);


            EditOrderResponse response = manager.EditOrder(date, orderNumber, expectedName, expectedState, expectedProduct, expectedArea);

            // DisplaySingleOrderResponse afterEditResponse = manager.GetOrderToEdit(date, orderNumber);
            if (response.Success)
            {
                testOrderRepo.UpdateThisOrder(response.Order);
                DisplaySingleOrderResponse afterEditResponse = manager.GetOrderToEdit(date, orderNumber);

                Assert.AreEqual(afterEditResponse.Order.Date, date);
                Assert.AreEqual(afterEditResponse.Order.OrderNumber, orderNumber);
                Assert.AreEqual(afterEditResponse.Order.CustomerName, expectedName);
                Assert.AreEqual(afterEditResponse.Order.State, expectedState);
                Assert.AreEqual(afterEditResponse.Order.ProductType, expectedProduct);
                Assert.AreEqual(afterEditResponse.Order.Area, expectedArea);
            }
            //testOrderRepo.UpdateThisOrder(response.Order);
            //Assert.AreEqual(expectedResult,
        }
コード例 #7
0
        public void OrderNumberCheck(int orderNumber, bool expectedResult)
        {
            OrderManager orderManager           = OrderManagerFactory.Create();
            DisplaySingleOrderResponse response = orderManager.DisplayOrder(new DateTime(2000, 1, 1), orderNumber);

            Assert.AreEqual(expectedResult, response.Success);
        }
コード例 #8
0
        public void ChangeName(DisplaySingleOrderResponse response)
        {
            Console.WriteLine();
            Console.Write($" Customer Name: ");

            string newName = Console.ReadLine();

            if (!string.IsNullOrEmpty(newName))
            {
                response.OrderDetails.CustomerName = newName;
            }
        }
コード例 #9
0
        public DisplaySingleOrderResponse DisplayOrder(DateTime orderDate, int orderNumber)
        {
            DisplaySingleOrderResponse response = new DisplaySingleOrderResponse();

            response.OrderDetails = _orderRepository.DisplayOrder(orderNumber, orderDate);

            if (response.OrderDetails == null)
            {
                response.Success = false;
            }
            else
            {
                response.Success = true;
            }
            return(response);
        }
コード例 #10
0
        public void ConfirmChange(DisplaySingleOrderResponse response, OrderManager manager)
        {
            ConsoleIO.ConfirmOrCancelFooter();

            var input = ConsoleIO.YesNoValidation();

            if (input == "Y")
            {
                manager.EditOrder(response.OrderDetails);
            }
            else
            {
                Console.WriteLine(ConsoleIO.ErrorMessage);
                Console.WriteLine(response.Message);
                Console.ReadKey();
            }
        }
コード例 #11
0
        public DisplaySingleOrderResponse GetOrderToEdit(DateTime date, int orderNumber)
        {
            DisplaySingleOrderResponse response = new DisplaySingleOrderResponse();

            response.Order = _orderRepo.GetAllOrdersForDate(date).FirstOrDefault(o => o.OrderNumber == orderNumber);

            if ((response.Order == null))
            {
                response.Success = false;
                response.Message = $"Error: order {orderNumber} does not match up with any order on {date.ToShortDateString()}.";
                return(response);
            }
            else
            {
                response.Order   = _orderRepo.GetAllOrdersForDate(date).First(o => o.OrderNumber == orderNumber);
                response.Success = true;
                return(response);
                //var orderToEdit = _orderRepo.GetAllOrdersForDate(date).First(o => o.OrderNumber == orderNumber);
                //return orderToEdit;
            }
        }
コード例 #12
0
        public void OrderCheck()
        {
            OrderManager manager = OrderManagerFactory.Create();

            DisplaySingleOrderResponse response = manager.DisplayOrder(new DateTime(2000, 1, 1), 2);

            Assert.IsNotNull(response.OrderDetails);
            Assert.IsTrue(response.Success);
            Assert.AreEqual(2, response.OrderDetails.OrderNumber);
            Assert.AreEqual("Big Homes", response.OrderDetails.CustomerName);
            Assert.AreEqual("OH", response.OrderDetails.State);
            Assert.AreEqual(6.25, response.OrderDetails.TaxRate);
            Assert.AreEqual("Tile", response.OrderDetails.ProductType);
            Assert.AreEqual(500, response.OrderDetails.Area);
            Assert.AreEqual(3.50, response.OrderDetails.CostPerSquareFoot);
            Assert.AreEqual(4.15, response.OrderDetails.LaborCostPerSquareFoot);
            Assert.AreEqual(1750.00, response.OrderDetails.MaterialCost);
            Assert.AreEqual(2075.00, response.OrderDetails.LaborCost);
            Assert.AreEqual("239.06", response.OrderDetails.Tax.ToString("00.00"));
            Assert.AreEqual("4064.06", response.OrderDetails.Total.ToString("00.00"));
        }
コード例 #13
0
        public void Execute()
        {
            Console.Clear();
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine();
            Console.WriteLine(ConsoleIO.SeperatorBar);
            Console.WriteLine(" REMOVE ORDER MENU ");
            Console.WriteLine(ConsoleIO.SeperatorBar);
            Console.WriteLine();

            DateTime validatedDateTime = new DateTime();
            bool     validDate         = false;

            while (!validDate)
            {
                Console.Write(" Enter Order Date In MM/DD/YYYY Format: ");
                string date = Console.ReadLine();

                if (!string.IsNullOrEmpty(date))
                {
                    if (DateTime.TryParse(date, out validatedDateTime))
                    {
                        validDate = true;
                    }
                    else
                    {
                        Console.WriteLine(" Please enter a VALID date format. ");
                    }
                }
                else
                {
                    Console.WriteLine(" Please enter a date. ");
                }
            }

            bool validOrderNumber     = false;
            int  validatedOrderNumber = 0;

            while (!validOrderNumber)
            {
                Console.Write(" Enter a Order Number: ");
                string orderNumber = Console.ReadLine();

                if (!string.IsNullOrEmpty(orderNumber))
                {
                    if (int.TryParse(orderNumber, out validatedOrderNumber))
                    {
                        validOrderNumber = true;
                    }
                    else
                    {
                        Console.WriteLine(" Please enter a VALID order number. ");
                    }
                }
                else
                {
                    Console.WriteLine(" Please enter an order number. ");
                }
            }

            DisplaySingleOrderResponse response = manager.DisplayOrder(validatedDateTime, validatedOrderNumber);

            if (response.Success)
            {
                Console.WriteLine();
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine(" ORDER FOUND - DETAILS BELOW ");
                Console.WriteLine(ConsoleIO.SeperatorBar);
                Console.WriteLine();
                Console.WriteLine($" Order Number: {response.OrderDetails.OrderNumber.ToString()} | Order Date: {validatedDateTime.ToString("MM/dd/yyyy")} ");
                Console.WriteLine($" Customer Name: {response.OrderDetails.CustomerName} ");
                Console.WriteLine($" State: {response.OrderDetails.State} ");
                Console.WriteLine($" Product: {response.OrderDetails.ProductType} ");
                Console.WriteLine($" Materials: {response.OrderDetails.MaterialCost:c} ");
                Console.WriteLine($" Labor: {response.OrderDetails.LaborCost:c} ");
                Console.WriteLine($" Tax: {response.OrderDetails.Tax:c} ");
                Console.WriteLine($" Total: {response.OrderDetails.Total:c} ");

                ConsoleIO.ConfirmOrCancelFooter();

                var input = ConsoleIO.YesNoValidation();

                if (input == "Y")
                {
                    manager.RemoveOrder(response.OrderDetails);
                }
            }
            else
            {
                Console.WriteLine(ConsoleIO.ErrorMessage);
                Console.WriteLine(response.Message);
                Console.ReadKey();
            }
        }