public void Initialize(FilterRuleSettings settings) { ValidateExpression(settings.Expression); ParseExpression(settings.Expression); Result = settings.Result; }
private void MapUrlFilterRules(ApplicationSettings settings, object value) { const int ALLOW = 1; if (value is IList <object> ruleDataList) { foreach (var item in ruleDataList) { if (item is IDictionary <string, object> ruleData) { if (ruleData.TryGetValue(Keys.Browser.Filter.RuleIsActive, out var v) && v is bool active && active) { var rule = new FilterRuleSettings(); if (ruleData.TryGetValue(Keys.Browser.Filter.RuleExpression, out v) && v is string expression) { rule.Expression = expression; } if (ruleData.TryGetValue(Keys.Browser.Filter.RuleAction, out v) && v is int action) { rule.Result = action == ALLOW ? FilterResult.Allow : FilterResult.Block; } if (ruleData.TryGetValue(Keys.Browser.Filter.RuleExpressionIsRegex, out v) && v is bool regex) { rule.Type = regex ? FilterRuleType.Regex : FilterRuleType.Simplified; } settings.Browser.Filter.Rules.Add(rule); } } } } }