Пример #1
0
        public static void AssignFilter(this TreeContext context, IFilter filter)
        {
            var finalFilter = context.GetFinalFilter(filter);
            var node        = context.GetGroupNode(filter as IFilterGroup);

            if (node != null)
            {
                context.AssignFilterToNode(finalFilter, node);
                return;
            }

            var group = context.GetParentGroup(filter);

            if (group == null || context.IsFilterAbsorbed(filter, group))
            {
                context.AssignFilterToNode(finalFilter, context.GetAssignmentNode(filter));
            }
            else
            {
                group.Filters.Add(finalFilter);
            }
        }