diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-03 00:10:11 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-03 00:10:11 -0400 |
| commit | 6481688d2acc23b789dab6e8ad04a96e48c46064 (patch) | |
| tree | ddc3fcb30fcc9187563e9cb297e9ae938f0581c0 /MediaBrowser.Controller/Library | |
| parent | b79840e20f068f087d845e4abf1e817d211a1783 (diff) | |
fixes #223 - New Content Localhost Popups Repeat 'Old' 'New Content' on Media Changes
Diffstat (limited to 'MediaBrowser.Controller/Library')
3 files changed, 48 insertions, 154 deletions
diff --git a/MediaBrowser.Controller/Library/ChildrenChangedEventArgs.cs b/MediaBrowser.Controller/Library/ChildrenChangedEventArgs.cs deleted file mode 100644 index 94f4c540f..000000000 --- a/MediaBrowser.Controller/Library/ChildrenChangedEventArgs.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Collections.Concurrent; -using MediaBrowser.Controller.Entities; -using System; -using System.Collections.Generic; - -namespace MediaBrowser.Controller.Library -{ - /// <summary> - /// Class ChildrenChangedEventArgs - /// </summary> - public class ChildrenChangedEventArgs : EventArgs - { - /// <summary> - /// Gets or sets the folder. - /// </summary> - /// <value>The folder.</value> - public Folder Folder { get; set; } - /// <summary> - /// Gets or sets the items added. - /// </summary> - /// <value>The items added.</value> - public ConcurrentBag<BaseItem> ItemsAdded { get; set; } - /// <summary> - /// Gets or sets the items removed. - /// </summary> - /// <value>The items removed.</value> - public List<BaseItem> ItemsRemoved { get; set; } - /// <summary> - /// Gets or sets the items updated. - /// </summary> - /// <value>The items updated.</value> - public ConcurrentBag<BaseItem> ItemsUpdated { get; set; } - - /// <summary> - /// Create the args and set the folder property - /// </summary> - /// <param name="folder">The folder.</param> - /// <exception cref="System.ArgumentNullException"></exception> - public ChildrenChangedEventArgs(Folder folder) - { - if (folder == null) - { - throw new ArgumentNullException(); - } - - //init the folder property - Folder = folder; - //init the list - ItemsAdded = new ConcurrentBag<BaseItem>(); - ItemsRemoved = new List<BaseItem>(); - ItemsUpdated = new ConcurrentBag<BaseItem>(); - } - - /// <summary> - /// Adds the new item. - /// </summary> - /// <param name="item">The item.</param> - /// <exception cref="System.ArgumentNullException"></exception> - public void AddNewItem(BaseItem item) - { - if (item == null) - { - throw new ArgumentNullException(); - } - - ItemsAdded.Add(item); - } - - /// <summary> - /// Adds the updated item. - /// </summary> - /// <param name="item">The item.</param> - /// <exception cref="System.ArgumentNullException"></exception> - public void AddUpdatedItem(BaseItem item) - { - if (item == null) - { - throw new ArgumentNullException(); - } - - ItemsUpdated.Add(item); - } - - /// <summary> - /// Adds the removed item. - /// </summary> - /// <param name="item">The item.</param> - /// <exception cref="System.ArgumentNullException"></exception> - public void AddRemovedItem(BaseItem item) - { - if (item == null) - { - throw new ArgumentNullException(); - } - - ItemsRemoved.Add(item); - } - - /// <summary> - /// Lists the has change. - /// </summary> - /// <param name="list">The list.</param> - /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private bool ListHasChange(List<BaseItem> list) - { - return list != null && list.Count > 0; - } - - /// <summary> - /// Lists the has change. - /// </summary> - /// <param name="list">The list.</param> - /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - private bool ListHasChange(ConcurrentBag<BaseItem> list) - { - return list != null && !list.IsEmpty; - } - - /// <summary> - /// Gets a value indicating whether this instance has change. - /// </summary> - /// <value><c>true</c> if this instance has change; otherwise, <c>false</c>.</value> - public bool HasChange - { - get { return HasAddOrRemoveChange || ListHasChange(ItemsUpdated); } - } - - /// <summary> - /// Gets a value indicating whether this instance has add or remove change. - /// </summary> - /// <value><c>true</c> if this instance has add or remove change; otherwise, <c>false</c>.</value> - public bool HasAddOrRemoveChange - { - get { return ListHasChange(ItemsAdded) || ListHasChange(ItemsRemoved); } - } - } -} diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index a456ee24c..89d17758e 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -1,12 +1,11 @@ -using System.IO; -using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; +using System.IO; using System.Threading; using System.Threading.Tasks; @@ -15,18 +14,6 @@ namespace MediaBrowser.Controller.Library public interface ILibraryManager { /// <summary> - /// Fires whenever any validation routine adds or removes items. The added and removed items are properties of the args. - /// *** Will fire asynchronously. *** - /// </summary> - event EventHandler<ChildrenChangedEventArgs> LibraryChanged; - - /// <summary> - /// Reports the library changed. - /// </summary> - /// <param name="args">The <see cref="ChildrenChangedEventArgs"/> instance containing the event data.</param> - void ReportLibraryChanged(ChildrenChangedEventArgs args); - - /// <summary> /// Resolves the item. /// </summary> /// <param name="args">The args.</param> @@ -185,14 +172,22 @@ namespace MediaBrowser.Controller.Library UserRootFolder GetUserRootFolder(string userRootPath); /// <summary> - /// Saves the item. + /// Creates the item. /// </summary> /// <param name="item">The item.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - Task SaveItem(BaseItem item, CancellationToken cancellationToken); + Task CreateItem(BaseItem item, CancellationToken cancellationToken); /// <summary> + /// Updates the item. + /// </summary> + /// <param name="item">The item.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task.</returns> + Task UpdateItem(BaseItem item, CancellationToken cancellationToken); + + /// <summary> /// Retrieves the item. /// </summary> /// <param name="id">The id.</param> @@ -222,5 +217,25 @@ namespace MediaBrowser.Controller.Library /// <param name="progress">The progress.</param> /// <returns>Task.</returns> Task ValidateArtists(CancellationToken cancellationToken, IProgress<double> progress); + + /// <summary> + /// Occurs when [item added]. + /// </summary> + event EventHandler<ItemChangeEventArgs> ItemAdded; + + /// <summary> + /// Occurs when [item updated]. + /// </summary> + event EventHandler<ItemChangeEventArgs> ItemUpdated; + /// <summary> + /// Occurs when [item removed]. + /// </summary> + event EventHandler<ItemChangeEventArgs> ItemRemoved; + + /// <summary> + /// Reports the item removed. + /// </summary> + /// <param name="item">The item.</param> + void ReportItemRemoved(BaseItem item); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Library/ItemChangeEventArgs.cs b/MediaBrowser.Controller/Library/ItemChangeEventArgs.cs new file mode 100644 index 000000000..c83ec54b7 --- /dev/null +++ b/MediaBrowser.Controller/Library/ItemChangeEventArgs.cs @@ -0,0 +1,16 @@ +using MediaBrowser.Controller.Entities; + +namespace MediaBrowser.Controller.Library +{ + /// <summary> + /// Class ItemChangeEventArgs + /// </summary> + public class ItemChangeEventArgs + { + /// <summary> + /// Gets or sets the item. + /// </summary> + /// <value>The item.</value> + public BaseItem Item { get; set; } + } +} |
