private static List ParseRuleDefinitions()

in src/Analyzer.JsonRuleEngine/JsonRuleEngine.cs [128:156]


        private static List<RuleDefinition> ParseRuleDefinitions(string rawRuleDefinitions)
        {
            List<RuleDefinition> rules;

            try
            {
                rules = JsonConvert.DeserializeObject<List<RuleDefinition>>(rawRuleDefinitions);
            }
            catch (Exception e)
            {
                throw new JsonRuleEngineException("Failed to parse rule definitions.", e);
            }

            string currentRule = null;
            try
            {
                foreach (var rule in rules)
                {
                    currentRule = rule.Id;
                    rule.Expression = rule.ExpressionDefinition.ToExpression();
                }
            }
            catch (Exception e)
            {
                throw new JsonRuleEngineException($"Failed to initialize rule {currentRule}.", e);
            }

            return rules;
        }