Esempio n. 1
0
        public override bool Match(IAbstractItem item)
        {
            var ctxVal = _ctx.GetTargetingValue(TargetingKeys.Culture);

            if (ctxVal == null || !(ctxVal is string))
            {
                return(true);
            }

            var val = item.GetTargetingValue(TargetingKeys.Culture);

            if (val == null || !(val is string))
            {
                return(true);
            }

            var ctxStrVal = ctxVal as string;
            var stringVal = val as string;

            return(String.IsNullOrWhiteSpace(stringVal) ? true : stringVal.Equals(ctxStrVal, StringComparison.InvariantCultureIgnoreCase));
        }
Esempio n. 2
0
        public override bool Match(IAbstractItem item)
        {
            var ctxVal = _ctx.GetTargetingValue(TargetingKeys.Region);

            if (ctxVal == null || !(ctxVal is int[]))
            {
                return(true);
            }

            var val = item.GetTargetingValue(TargetingKeys.Region);

            if (val == null || !(val is int[]))
            {
                return(true);
            }

            var regions           = val as int[];
            var currentRegionKeys = ctxVal as int[];

            //если у страницы нет регионов, значит подходит всем
            //если есть, значит должно быть пересечение хотя бы по одному
            return(!regions.Any() ? true : regions.Intersect(currentRegionKeys).Any());
        }