コード例 #1
0
        public IEnumerable <IRule> GetRule(string[] moduleNames, string[] ruleNames)
        {
            IEnumerable <IRule>         results       = null;
            IEnumerable <IExternalRule> externalRules = null;

            // Combines C# rules.
            IEnumerable <IRule> rules = ScriptRules.Union <IRule>(TokenRules)
                                        .Union <IRule>(DSCResourceRules);

            // Gets PowerShell Rules.
            if (moduleNames != null)
            {
                externalRules = GetExternalRule(moduleNames);
                rules         = rules.Union <IRule>(externalRules);
            }

            if (ruleNames != null)
            {
                results = rules.Where <IRule>(item =>
                                              ruleNames.Contains(item.GetName(), StringComparer.OrdinalIgnoreCase));
            }
            else
            {
                results = rules;
            }

            return(results);
        }
コード例 #2
0
        public IEnumerable <IRule> GetRule(string[] moduleNames, string[] ruleNames)
        {
            IEnumerable <IRule>         results       = null;
            IEnumerable <IExternalRule> externalRules = null;

            // Combines C# rules.
            IEnumerable <IRule> rules = ScriptRules.Union <IRule>(TokenRules)
                                        .Union <IRule>(DSCResourceRules);

            // Gets PowerShell Rules.
            if (moduleNames != null)
            {
                externalRules = GetExternalRule(moduleNames);
                rules         = rules.Union <IRule>(externalRules);
            }

            if (ruleNames != null)
            {
                //Check wild card input for -Name parameter and create regex match patterns
                List <Regex> regexList = new List <Regex>();
                foreach (string ruleName in ruleNames)
                {
                    Regex includeRegex = new Regex(String.Format("^{0}$", Regex.Escape(ruleName).Replace(@"\*", ".*")), RegexOptions.IgnoreCase);
                    regexList.Add(includeRegex);
                }

                results = from rule in rules
                          from regex in regexList
                          where regex.IsMatch(rule.GetName())
                          select rule;
            }
            else
            {
                results = rules;
            }

            return(results);
        }