MatchResult IMatcher.GetMatchResultFor(IMatcherContext context, FileInfo item) { if (Equals(context, item)) { return(ForceInclude ? MatchResult.IncludeForce : MatchResult.Include); } return(MatchResult.Inconclusive); }
internal static IEnumerable <FileInfo> GetMatches(IMatcherContext context) { foreach (var file in context.Project.BasePath.GetFiles("*.*", SearchOption.AllDirectories)) { MatchResult fileResult = MatchResult.Inconclusive; if (context.Project.IncludeAllByDefault) { fileResult = MatchResult.Include; } foreach (IMatcher exc in context.Project.Exclusions) { MatchResult result = exc.GetMatchResultFor(context, file); if (result == MatchResult.Exclude) { fileResult = result; break; } } foreach (IMatcher inc in context.Project.Inclusions) { MatchResult result = inc.GetMatchResultFor(context, file); if (fileResult == MatchResult.Exclude && result == MatchResult.IncludeForce) { fileResult = MatchResult.Include; break; } else if (result == MatchResult.Include) { fileResult = result; break; } } if (fileResult == MatchResult.Include) { yield return(file); } } }