diff options
| author | Techywarrior <techywarrior@gmail.com> | 2013-05-02 21:39:34 -0700 |
|---|---|---|
| committer | Techywarrior <techywarrior@gmail.com> | 2013-05-02 21:39:34 -0700 |
| commit | 8095f7200b1bd79bc30572a3ebde03f34a6b9e01 (patch) | |
| tree | 42d664de774dc7744fc133be3f3a646e3db056eb /MediaBrowser.Server.Implementations/IO | |
| parent | f58c26afaa94b812c06004145999336bb77e4629 (diff) | |
| parent | 9fdf5d1c4b488fe53e557870cacdf02b1b7fd4a2 (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Server.Implementations/IO')
| -rw-r--r-- | MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs index d45952d6f..51fbfd219 100644 --- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs @@ -103,7 +103,8 @@ namespace MediaBrowser.Server.Implementations.IO /// </summary> public void Start() { - LibraryManager.LibraryChanged += Instance_LibraryChanged; + LibraryManager.ItemAdded += LibraryManager_ItemAdded; + LibraryManager.ItemRemoved += LibraryManager_ItemRemoved; var pathsToWatch = new List<string> { LibraryManager.RootFolder.Path }; @@ -138,6 +139,32 @@ namespace MediaBrowser.Server.Implementations.IO } /// <summary> + /// Handles the ItemRemoved event of the LibraryManager control. + /// </summary> + /// <param name="sender">The source of the event.</param> + /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param> + void LibraryManager_ItemRemoved(object sender, ItemChangeEventArgs e) + { + if (e.Item.Parent is AggregateFolder) + { + StopWatchingPath(e.Item.Path); + } + } + + /// <summary> + /// Handles the ItemAdded event of the LibraryManager control. + /// </summary> + /// <param name="sender">The source of the event.</param> + /// <param name="e">The <see cref="ItemChangeEventArgs"/> instance containing the event data.</param> + void LibraryManager_ItemAdded(object sender, ItemChangeEventArgs e) + { + if (e.Item.Parent is AggregateFolder) + { + StartWatchingPath(e.Item.Path); + } + } + + /// <summary> /// Examine a list of strings assumed to be file paths to see if it contains a parent of /// the provided path. /// </summary> @@ -232,32 +259,6 @@ namespace MediaBrowser.Server.Implementations.IO } /// <summary> - /// Handles the LibraryChanged event of the Kernel - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="MediaBrowser.Controller.Library.ChildrenChangedEventArgs" /> instance containing the event data.</param> - void Instance_LibraryChanged(object sender, ChildrenChangedEventArgs e) - { - if (e.Folder is AggregateFolder && e.HasAddOrRemoveChange) - { - if (e.ItemsRemoved != null) - { - foreach (var item in e.ItemsRemoved.OfType<Folder>()) - { - StopWatchingPath(item.Path); - } - } - if (e.ItemsAdded != null) - { - foreach (var item in e.ItemsAdded.OfType<Folder>()) - { - StartWatchingPath(item.Path); - } - } - } - } - - /// <summary> /// Handles the Error event of the watcher control. /// </summary> /// <param name="sender">The source of the event.</param> @@ -497,7 +498,8 @@ namespace MediaBrowser.Server.Implementations.IO /// </summary> public void Stop() { - LibraryManager.LibraryChanged -= Instance_LibraryChanged; + LibraryManager.ItemAdded -= LibraryManager_ItemAdded; + LibraryManager.ItemRemoved -= LibraryManager_ItemRemoved; FileSystemWatcher watcher; |
