protected virtual void OnRaiseItemAdded(DirectoryItemAddedEventArgs args) { // TODO: Only raise the event if the item/s matches watch pattern. var matches = GetMatchingFilters(args.NewItem.Path).ToArray(); if (matches.Length > 0) { var watcherArgs = new DirectoryWatcherFilterMatchedEventArgs <DirectoryItemAddedEventArgs>(args, matches); EventHandler <DirectoryWatcherFilterMatchedEventArgs <DirectoryItemAddedEventArgs> > handler = ItemAdded; handler?.Invoke(this, watcherArgs); } }
protected virtual void OnRaiseItemUpdated(DirectoryItemUpdatedEventArgs args) { // Only raise the event if the old or new item (i.e file or folder could have been renamed) // matches a pattern. var newItemMatches = GetMatchingFilters(args.NewItem.Path).ToArray(); var oldItemMatches = GetMatchingFilters(args.OldItem.Path).ToArray(); var unionMatches = newItemMatches.Union(oldItemMatches).ToArray(); if (unionMatches.Length > 0) { var watcherArgs = new DirectoryWatcherFilterMatchedEventArgs <DirectoryItemUpdatedEventArgs>(args, unionMatches); EventHandler <DirectoryWatcherFilterMatchedEventArgs <DirectoryItemUpdatedEventArgs> > handler = ItemUpdated; handler?.Invoke(this, watcherArgs); } ; }