public List <TSqlFragmentVisitor> BuildVisitors(string sqlPath, List <RuleViolation> violations) { var configuredVisitors = new List <TSqlFragmentVisitor>(); for (var index = 0; index < RuleVisitors.Count; index++) { var visitor = RuleVisitors[index]; Action <string, string, int, int> ErrorCallback = delegate(string ruleName, string ruleText, int startLne, int startColumn) { Reporter.ReportViolation(new RuleViolation( sqlPath, ruleName, ruleText, startLne, startColumn, ConfigReader.GetRuleSeverity(ruleName))); }; var visitorInstance = (ISqlRule)Activator.CreateInstance(visitor, ErrorCallback); var severity = ConfigReader.GetRuleSeverity(visitorInstance.RULE_NAME); if (severity == RuleViolationSeverity.Error || severity == RuleViolationSeverity.Warning) { configuredVisitors.Add((TSqlFragmentVisitor)visitorInstance); } } return(configuredVisitors); }
public List <TSqlFragmentVisitor> BuildVisitors(string sqlPath, List <IRuleException> ignoredRules) { void RuleViolationCallback(string ruleName, string ruleText, int startLne, int startColumn) { HandleRuleViolation(sqlPath, ignoredRules, ruleName, startLne, ruleText, startColumn); } var configuredVisitors = new List <TSqlFragmentVisitor>(); foreach (var visitor in RuleVisitorFriendlyNameTypeMap.List) { var visitorInstance = (ISqlRule)Activator.CreateInstance( visitor.Value, (Action <string, string, int, int>)RuleViolationCallback); var severity = configReader.GetRuleSeverity(visitorInstance.RULE_NAME); if (severity == RuleViolationSeverity.Off) { continue; } configuredVisitors.Add((TSqlFragmentVisitor)visitorInstance); } return(configuredVisitors); }
public List <TSqlFragmentVisitor> BuildVisitors(string sqlPath, List <IRuleException> ignoredRules) { void ErrorCallback(string ruleName, string ruleText, int startLne, int startColumn) { if (ignoredRules.Any() && IsRuleIgnored(ignoredRules, ruleName, startLne)) { return; } var ruleSeverity = ConfigReader.GetRuleSeverity(ruleName); if (ruleSeverity == RuleViolationSeverity.Error && !ErrorLogged) { ErrorLogged = true; Environment.ExitCode = 1; } Reporter.ReportViolation(new RuleViolation(sqlPath, ruleName, ruleText, startLne, startColumn, ruleSeverity)); } var configuredVisitors = new List <TSqlFragmentVisitor>(); foreach (var visitor in RuleVisitorTypes.List) { var visitorInstance = (ISqlRule)Activator.CreateInstance(visitor, (Action <string, string, int, int>)ErrorCallback); var severity = ConfigReader.GetRuleSeverity(visitorInstance.RULE_NAME); if (severity == RuleViolationSeverity.Off) { continue; } configuredVisitors.Add((TSqlFragmentVisitor)visitorInstance); } return(configuredVisitors); }