Ejemplo n.º 1
0
        public bool Include(object item)
        {
            var visit = (item as IVisitAggregationContext).TryGet(v => v.Visit);

            if (visit != null)
            {
                var tracker = _trackerFactory(visit);
                TrackerSwitcher.Enter(tracker);
                try
                {
                    var rulesContext = new RuleContext();

                    rulesContext.Item = RuleContextItem;
                    _rules.Run(rulesContext);
                    object addToSegment;
                    var    include = !rulesContext.IsAborted &&
                                     rulesContext.Parameters.TryGetValue("addVisit", out addToSegment) &&
                                     (bool)addToSegment;

                    return(include);
                }
                finally
                {
                    if (Tracker.Current == tracker)
                    {
                        TrackerSwitcher.Exit();
                    }
                }
            }

            return(false);
        }