コード例 #1
0
        public bool IsMatch(HttpContext httpContext)
        {
            if (httpContext.Request.HttpMethod == HttpMethod && PathPattern.IsMatch(httpContext.Request.Path))
            {
                return(true);
            }

            return(false);
        }
コード例 #2
0
        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);
                        }
                    }
                }
            }
        }