private IEnumerable <IResourceFile> FilterChildDirectoryFiles(IResourceDirectory directory, string[] foldersToExclude)
 {
     return(directory
            .GetDirectories()
            .Where(d => !foldersToExclude.Any(f => d.VirtualPath.EndsWith(f, StringComparison.OrdinalIgnoreCase)))
            .SelectMany(f => FilterViewFiles(f)));
 }
예제 #2
0
        private IEnumerable <PageTemplateFile> SearchDirectoryForPageTemplateFiles(IResourceDirectory directory, string searchText)
        {
            foreach (var file in directory.GetFiles())
            {
                // filename contains the search text and is located in a 'PageTemplates' folder, but not a 'partials' folder and has the extension .cshtml
                if (Contains(file.Name, searchText) &&
                    !Contains(file.VirtualPath, PARTIALS_FOLDER_NAME) &&
                    !Contains(file.VirtualPath, "_ViewStart") &&
                    file.Name.EndsWith(FILE_EXTENSION, StringComparison.OrdinalIgnoreCase))
                {
                    yield return(MapPageTemplateFile(file));
                }
            }

            foreach (var childDirectory in directory.GetDirectories())
            {
                foreach (var file in SearchDirectoryForPageTemplateFiles(childDirectory, searchText))
                {
                    yield return(file);
                }
            }
        }