public bool IsMatch(HttpContext httpContext) { if (httpContext.Request.HttpMethod == HttpMethod && PathPattern.IsMatch(httpContext.Request.Path)) { return(true); } return(false); }
private IEnumerable <string> EnumerateEntriesInDirectory([NotNull] DirectoryEntry directory, [NotNull] PathPattern pattern, [NotNull] AbsolutePath directoryPath, SearchOption searchOption, EnumerationFilter filter) { PathPattern subPattern = pattern.SubPattern; if (subPattern == null) { Container.ChangeTracker.NotifyContentsAccessed(directory.PathFormatter, FileAccessKinds.Read); foreach (BaseEntry entry in directory.EnumerateEntries(filter).Where(x => pattern.IsMatch(x.Name)) .OrderBy(x => x.Name)) { string basePath = directoryPath.GetText(); yield return(Path.Combine(basePath, entry.Name)); } if (searchOption == SearchOption.AllDirectories) { foreach (DirectoryEntry subdirectory in directory.Directories) { AbsolutePath subdirectoryPath = directoryPath.Append(subdirectory.Name); foreach (string nextPath in EnumerateEntriesInDirectory(subdirectory, pattern, subdirectoryPath, searchOption, filter)) { yield return(nextPath); } } } } else { foreach (DirectoryEntry subdirectory in directory.Directories) { if (pattern.IsMatch(subdirectory.Name)) { AbsolutePath subdirectoryPath = directoryPath.Append(subdirectory.Name); foreach (string nextPath in EnumerateEntriesInDirectory(subdirectory, subPattern, subdirectoryPath, searchOption, filter)) { yield return(nextPath); } } } } }