private bool IsValidOrderInput(string input, string request)
        {
            switch (request)
            {
            case NameRequest:
                return(_orderInputValidator.IsValidName(input));

            case AddressRequest:
                return(_orderInputValidator.IsValidAddress(input));

            case DueDateRequest:
                return(_orderInputValidator.IsValidDueDate(input, DateInputFormat));

            default:
                return(_orderInputValidator.IsValidQuantity(input));
            }
        }
        private OrderItemsCollection GetOrderItems(string[] orderDetails)
        {
            var orderItems = new List <OrderItem>();

            foreach (var item in _productsList)
            {
                string optionInDisplayName = $"{item.GetDisplayName().ToLower()}s";
                var    itemIndex           = Array.FindIndex(_csvFileHeaders, x => x.ToLower() == optionInDisplayName);
                var    inputForItem        = orderDetails[itemIndex];
                if (inputForItem != "")
                {
                    if (!_orderInputValidator.IsValidQuantity(inputForItem))
                    {
                        throw (new InvalidInputException($"{inputForItem} is an invalid input - Quantity should be recorded in round number and within the range of 1 - 100."));
                    }
                    var quantity = Int32.Parse(inputForItem);
                    item.SetQuantity(quantity);
                    orderItems.Add(item);
                }
            }
            return(new OrderItemsCollection(orderItems));
        }