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