private IEnumerable <string> EnumerateFiles(TextSearch nameOrPath, TextSearch fileExtension, SearchOption searchOption)
        {
            bool isSuffixed = nameOrPath.Type == TextSearchType.Suffixed;

            if (isSuffixed)
            {
                nameOrPath = TextSearch.CreateContained(nameOrPath.Text, nameOrPath.IsCaseSensitive);
            }

            return(Directory
                   .EnumerateFiles(parentDirectory, PrepareSearchPattern(nameOrPath), searchOption)
                   .Where(file => IsExtensionMatched(file, fileExtension) && (!isSuffixed || IsFileSuffixMatched(file, nameOrPath))));
        }