Exemplo n.º 1
0
        public void Initialize(FilterRuleSettings settings)
        {
            ValidateExpression(settings.Expression);
            ParseExpression(settings.Expression);

            Result = settings.Result;
        }
Exemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }