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); }