public void InitializeFilters(IList <SnoopSingleFilter> singleFilters)
        {
            this.filters.Clear();

            if (singleFilters == null)
            {
                this.filters.Add(new SnoopSingleFilter());
                this.IsSet = false;
                return;
            }

            foreach (var filter in singleFilters)
            {
                this.filters.Add(filter);
            }

            var groupings = (from x in singleFilters where x.IsGrouped select x).GroupBy(x => x.GroupId);

            foreach (var grouping in groupings)
            {
                var multipleFilter = new SnoopMultipleFilter();
                var groupedFilters = grouping.ToArray();
                if (groupedFilters.Length == 0)
                {
                    continue;
                }

                multipleFilter.AddRange(groupedFilters, groupedFilters[0].GroupId);
                this.multipleFilters.Add(multipleFilter);
            }

            this.SetIsSet();
        }
        public void GroupFilters(IEnumerable <SnoopFilter> filtersToGroup)
        {
            var multipleFilter = new SnoopMultipleFilter();

            multipleFilter.AddRange(filtersToGroup, (this.multipleFilters.Count + 1).ToString());

            this.multipleFilters.Add(multipleFilter);
        }