Ejemplo n.º 1
0
        MatchResult IMatcher.GetMatchResultFor(IMatcherContext context, FileInfo item)
        {
            if (Equals(context, item))
            {
                return(ForceInclude ? MatchResult.IncludeForce : MatchResult.Include);
            }

            return(MatchResult.Inconclusive);
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }