コード例 #1
0
        // sends edit or delete responses to Data Layer
        public AddEditOrDeleteOrderResponse EditOrDeleteOrder(Order order)
        {
            AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse();

            Order validatedOrder = OrderValidation(order);

            if (validatedOrder == null)
            {
                response.Order = null;
            }
            else
            {
                response.Order = _orderRepository.EditOrDeleteOrder(validatedOrder);
            }

            if (response.Order == null)
            {
                response.Success = false;
                response.Message = $"The order wasn't able to be edited.";
            }
            else
            {
                response.Success = true;
            }

            return(response);
        }
コード例 #2
0
        // sets the edit or delete response into motion
        public AddEditOrDeleteOrderResponse EditOrDeleteOrderSelection(string orderDate, string orderNumber)
        {
            AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse();

            DateValidation(orderDate);
            int orderNumberInt = IntValidation(orderNumber);

            if ((Date.OrderDate.ToString() == Date.DATE_TIME_ORIGIN) || (orderNumberInt == 0))
            {
                response.Order = null;
            }
            else
            {
                response.Order = _orderRepository.EditOrDeleteOrderSelection(Date.OrderDate, orderNumberInt);
            }

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

            return(response);
        }
コード例 #3
0
        // sets the add edit or delete response into motion for adding an order
        public AddEditOrDeleteOrderResponse AddOrder(string orderDate, Order order)
        {
            AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse();

            DateValidation(orderDate);
            Order validatedOrder = OrderValidation(order);

            if ((Date.OrderDate.ToString() == Date.DATE_TIME_ORIGIN) || (validatedOrder == null))
            {
                response.Order = null;
            }
            else
            {
                response.Order = _orderRepository.AddOrder(Date.OrderDate, validatedOrder);
            }

            if (response.Order == null)
            {
                response.Success = false;
                response.Message = "The order could not be added.";
            }
            else
            {
                response.Success = true;
            }

            return(response);
        }
コード例 #4
0
        [TestCase("1/3/2020 12:00:00 AM", "0", false)]   // account exists and can be found

        public void EditOrDeleteOrderSelectionTest(string date, string orderNumber, bool expectedResult)
        {
            AccountManager manager = AccountManagerFactory.Create();

            AddEditOrDeleteOrderResponse response = manager.EditOrDeleteOrderSelection(date, orderNumber);

            Assert.AreEqual(expectedResult, response.Success);
        }
コード例 #5
0
        [TestCase("1/1/2020", "Bi*ll", "MI", "Tile", 1000, false)]             //Name not in proper format

        public void AddOrderTest(string date, string name, string state,
                                 string productType, decimal area, bool expectedResult)
        {
            Order order = new Order
            {
                CustomerName = name,
                State        = state,
                ProductType  = productType,
                Area         = area
            };

            AccountManager manager = AccountManagerFactory.Create();

            AddEditOrDeleteOrderResponse response = manager.AddOrder(date, order);

            Assert.AreEqual(expectedResult, response.Success);
        }
コード例 #6
0
        public void Execute()
        {
            AccountManager manager = AccountManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Add an Order");
            Console.WriteLine($"{Menu.stars}");

            // Validates user input and parses to DateTime
            do
            {
                // resets date
                Date.OrderDate = Convert.ToDateTime(EditOrDeleteOrderWorkflow.DATE_TIME_ORIGIN);

                try
                {
                    Date.OrderDate = DateTime.Parse(ConsoleInput.ConsoleInput.GetStringFromUser(Date.DatePrompt));
                }
                catch
                {
                    Console.WriteLine("Date must be a legitimate date in the future.");
                }
            } while (Date.OrderDate.Date.ToString() == EditOrDeleteOrderWorkflow.DATE_TIME_ORIGIN);

            Order order = new Order();

            // Validates Customer Name
            do
            {
                order.CustomerName = ConsoleInput.ConsoleInput.GetStringFromUser("Enter customer's name (a-z 0-9 , or . are excepted): ");
            } while (!(Regex.IsMatch(order.CustomerName, @"^[a-zA-Z0-9., ]+$")));

            // Validates State Abbreviation
            do
            {
                order.State = ConsoleInput.ConsoleInput.GetStringFromUser("Enter the state abbreviation (PA, OH, MI, or IN): ").ToUpper();
            } while (!(order.State == Taxes.statePA || order.State == Taxes.stateOH ||
                       order.State == Taxes.stateMI || order.State == Taxes.stateIN));

            // Validates Product Type
            do
            {
                order.ProductType = ConsoleInput.ConsoleInput.GetStringFromUser("Enter a product ( Carpet, Laminate, Tile, or Wood ): ");
            } while (!(order.ProductType.ToUpper() == Products.typeCarpet ||
                       order.ProductType.ToUpper() == Products.typeLaminate ||
                       order.ProductType.ToUpper() == Products.typeTile ||
                       order.ProductType.ToUpper() == Products.typeWood));

            // Validates Order Area
            order.Area = ConsoleInput.ConsoleInput.GetDecimalFromUser("Enter the area: ", Order.MIN_AREA, EditOrDeleteOrderWorkflow.MAX_INT);

            // Sends response to Data layer to add an order to an existing file or to create a new file and add it there
            AddEditOrDeleteOrderResponse response = manager.AddOrder(Date.OrderDate, order);

            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();
        }
コード例 #7
0
        public void Execute()
        {
            AccountManager manager = AccountManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Display an Order");
            Console.WriteLine($"{Menu.stars}");

            // Validates Date and parses to DateTime
            do
            {
                // resets date
                Date.OrderDate = Convert.ToDateTime(DATE_TIME_ORIGIN);

                try
                {
                    Date.OrderDate = DateTime.Parse(ConsoleInput.ConsoleInput.GetStringFromUser(Date.DatePrompt));
                }
                catch
                {
                    Console.WriteLine("Date must be a legitimate date in the future.");
                }
            } while (Date.OrderDate.Date.ToString() == DATE_TIME_ORIGIN);

            // Sends response to the Data Layer to see if the file exists to be edited or deleted
            OrderLookupResponse displayListResponse = manager.DisplayOrder(Date.OrderDate);

            // Outputs what is returned from Data Layer
            ConsoleIO.DisplayOrderListDetails(displayListResponse.Order);

            int orderNumber = ConsoleInput.ConsoleInput.GetIntFromUser("Enter the order number of the order you would like to edit or delete: ", 1, MAX_INT);

            // Sends another response to edit a certain field or delete an order
            AddEditOrDeleteOrderResponse responseCheck = manager.EditOrDeleteOrderSelection(Date.OrderDate, orderNumber);

            if (responseCheck.Success)
            {
                Console.WriteLine($"1. {responseCheck.Order.CustomerName}");
                Console.WriteLine($"2. {responseCheck.Order.State}");
                Console.WriteLine($"3. {responseCheck.Order.ProductType}");
                Console.WriteLine($"4. {responseCheck.Order.Area}");
                Console.WriteLine("5. Delete Order");

                int editNumber = ConsoleInput.ConsoleInput.GetIntFromUser("Enter the item you would like to edit or hit 5 to delete an order: ", 1, _fiveForDelete);

                // Validates the user's responses and assigns them to the appropriate Order properties
                switch (editNumber)
                {
                case 1:
                    do
                    {
                        responseCheck.Order.CustomerName = ConsoleInput.ConsoleInput.GetStringFromUser("Enter customer's name (a-z 0-9 , or . are excepted): ");
                    } while (!(Regex.IsMatch(responseCheck.Order.CustomerName, @"^[a-zA-Z0-9., ]+$")));
                    break;

                case 2:
                    do
                    {
                        responseCheck.Order.State = ConsoleInput.ConsoleInput.GetStringFromUser("Enter the state abbreviation (PA, OH, MI, or IN): ").ToUpper();
                    } while (!(responseCheck.Order.State == Taxes.statePA || responseCheck.Order.State == Taxes.stateOH ||
                               responseCheck.Order.State == Taxes.stateMI || responseCheck.Order.State == Taxes.stateIN));
                    break;

                case 3:
                    do
                    {
                        responseCheck.Order.ProductType = ConsoleInput.ConsoleInput.GetStringFromUser("Enter a product ( Carpet, Laminate, Tile, or Wood ): ");
                    } while (!(responseCheck.Order.ProductType.ToUpper() == Products.typeCarpet ||
                               responseCheck.Order.ProductType.ToUpper() == Products.typeLaminate ||
                               responseCheck.Order.ProductType.ToUpper() == Products.typeTile ||
                               responseCheck.Order.ProductType.ToUpper() == Products.typeWood));
                    break;

                case 4:
                    responseCheck.Order.Area = ConsoleInput.ConsoleInput.GetDecimalFromUser("Enter your changes: ", Order.MIN_AREA, MAX_INT);
                    break;

                case 5:
                    responseCheck.Order.CustomerName = $"{responseCheck.Order.CustomerName} DELETE";
                    break;

                default:
                    return;
                }

                // Displays what you are editing or deleting
                ConsoleIO.DisplayOrderDetails(responseCheck.Order);

                // Prompts you to confirm
                string response;
                do
                {
                    response = ConsoleInput.ConsoleInput.GetStringFromUser("Would you like to continue with the changes above? (Yes or No) ").ToUpper();
                } while (response != "YES" && response != "NO");

                // If yes then send to the Data Layer to edit or delete
                if (response == "YES")
                {
                    AddEditOrDeleteOrderResponse responseEdit = manager.EditOrDeleteOrder(responseCheck.Order);
                    if (responseEdit.Success)
                    {
                        ConsoleIO.DisplayOrderDetails(responseEdit.Order);
                    }
                    else
                    {
                        Console.WriteLine("An error occurred: ");
                        Console.WriteLine(responseEdit.Message);
                    }
                }
            }
            else
            {
                Console.WriteLine("An error occurred: ");
                Console.WriteLine(responseCheck.Message);
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }