Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }