internal void ProcessChanges(ICollection <SPAggregatedChange> collection)
        {
            CommonHelper.ConfirmNotNull(collection, "collection");
            List <SPAggregatedChange> filteredCollection = new List <SPAggregatedChange>();

            foreach (SPAggregatedChange item in collection)
            {
                ulong bitmask = GetBitmaskValue(item.ObjectType) | (ulong)item.ChangeFlags;
                if (this.Filters.Any(v => (v.Bitmask & bitmask) == bitmask))
                {
                    List <SPChange> filteredChanges = new List <SPChange>(item.Where(ShouldNotify));
                    if (filteredChanges.Count > 0)
                    {
                        filteredCollection.Add(new SPAggregatedChange(filteredChanges));
                    }
                }
            }
            if (filteredCollection.Count > 0)
            {
                SPChangeMonitorEventArgs eventArg = new SPChangeMonitorEventArgs(this.SiteId, filteredCollection.AsReadOnly());
                try {
                    objectChanged(this, eventArg);
                } catch (Exception ex) {
                    SPDiagnosticsService.Local.WriteTrace(TraceCategory.General, ex);
                }
            }
        }
 private void OnObjectChanged(object sender, SPChangeMonitorEventArgs e)
 {
     NotifyDependencyChanged(this, EventArgs.Empty);
 }