public void RemoveFilter(SnoopFilter filter)
        {
            this.IsDirty = true;

            var singleFilter = filter as SnoopSingleFilter;

            if (singleFilter != null)
            {
                //foreach (var multipeFilter in this.multipleFilters)
                var index = 0;
                while (index < this.multipleFilters.Count)
                {
                    var multipeFilter = this.multipleFilters[index];
                    if (multipeFilter.ContainsFilter(singleFilter))
                    {
                        multipeFilter.RemoveFilter(singleFilter);
                    }

                    if (!multipeFilter.IsValidMultipleFilter)
                    {
                        this.multipleFilters.RemoveAt(index);
                    }
                    else
                    {
                        index++;
                    }
                }
            }

            this.filters.Remove(filter);
        }
        public void AddFilter(SnoopFilter singleFilter)
        {
            if (!singleFilter.SupportsGrouping)
            {
                throw new NotSupportedException("The filter is not grouped");
            }

            this.singleFilters.Add(singleFilter);
        }
        public void AddFilter(SnoopFilter filter)
        {
            this.IsDirty = true;

            this.filters.Add(filter);
        }
 public void RemoveFilter(SnoopFilter singleFilter)
 {
     singleFilter.IsGrouped = false;
     this.singleFilters.Remove(singleFilter);
 }