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))); }
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); } } }