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); }
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); } } }