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 Customer GetCustomer(string[] orderDetails)
        {
            var nameIndex = Array.IndexOf(_csvFileHeaders, nameHeader);
            var name      = orderDetails[nameIndex];

            if (!_orderInputValidator.IsValidName(name))
            {
                throw (new InvalidInputException($"{name} is an invalid input - Name should start with alphabet letter and with the minimal length of 3 characters."));
            }
            var addressIndex = Array.IndexOf(_csvFileHeaders, addressHeader);
            var address      = orderDetails[addressIndex];

            if (!_orderInputValidator.IsValidAddress(address))
            {
                throw (new InvalidInputException($"{address} is an invalid input - Address should have the minimal length of 10 characters."));
            }
            return(new Customer(name, address));
        }