コード例 #1
0
        public static bool ShouldProcessFile(string filePath, FilesingConfig config, PatternConfig currentPattern)
        {
            bool globalIgnore = false;

            for (int i = 0; (i < config.GlobalIgnoreConfigs.Count) && (globalIgnore == false); ++i)
            {
                // If the path should be ignored, flag it as such, and break out of the loop.
                globalIgnore = config.GlobalIgnoreConfigs[i].ShouldIgnore(filePath);
            }

            bool globalRequire = false;

            for (int i = 0; (i < config.GlobalRequireConfigs.Count) && (globalRequire == false); ++i)
            {
                // If the path is required, flag it as such, and break out of the loop.
                globalRequire = config.GlobalRequireConfigs[i].IsRequired(filePath);
            }

            bool patternIgnore = false;

            for (int i = 0; (i < currentPattern.IgnoreConfigs.Count) && (patternIgnore == false); ++i)
            {
                patternIgnore = currentPattern.IgnoreConfigs[i].ShouldIgnore(filePath);
            }

            bool patternRequire = false;

            for (int i = 0; (i < currentPattern.RequireConfigs.Count) && (patternRequire == false); ++i)
            {
                patternRequire = currentPattern.RequireConfigs[i].IsRequired(filePath);
            }

            if (patternRequire)
            {
                // If our pattern says its required,
                // return true, as it overrides any global config.
                return(true);
            }
            else if (patternIgnore)
            {
                // If our pattern says to ignore the file,
                // ignore the file, as it overrides any global config.
                return(false);
            }
            else if (globalRequire)
            {
                // If the file falls into the categories that globally are required,
                // it should be processed.
                return(true);
            }
            else if (globalIgnore)
            {
                // If thf file falls into the categories that globally are ignored,
                // it should not be processed.
                return(false);
            }

            // By default, always process the file.
            return(true);
        }
コード例 #2
0
ファイル: XmlLoader.cs プロジェクト: xforever1313/Filesing
 private static void ParsePatterns(XmlNode patternListNode, FilesingConfig filesingConfig)
 {
     foreach (XmlNode childNode in patternListNode.ChildNodes)
     {
         if (childNode.Name.EqualsIgnoreCase(regexNode))
         {
             // Patterns will always default to ignoring case.
             Regex         regex         = CreateRegexFromXmlNode(childNode, true);
             PatternConfig patternConfig = new PatternConfig(regex);
             filesingConfig.PatternConfigs.Add(patternConfig);
         }
         else if (childNode.Name.EqualsIgnoreCase(patternNode))
         {
             PatternConfig patternConfig = LoadPatternConfig(childNode, filesingConfig);
             filesingConfig.PatternConfigs.Add(patternConfig);
         }
     }
 }