@ -1,6 +1,6 @@
#nullable disable
#pragma warning disable C S1591
#pragma warning disable C A1002, C S1591
using System ;
using System.Collections.Generic ;
@ -31,6 +31,29 @@ namespace MediaBrowser.Controller.Library
/// </summary>
public interface ILibraryManager
{
/// <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>
/// Gets the root folder.
/// </summary>
/// <value>The root folder.</value>
AggregateFolder RootFolder { get ; }
bool IsScanRunning { get ; }
/// <summary>
/// Resolves the path.
/// </summary>
@ -57,16 +80,10 @@ namespace MediaBrowser.Controller.Library
LibraryOptions libraryOptions ,
string collectionType = null ) ;
/// <summary>
/// Gets the root folder.
/// </summary>
/// <value>The root folder.</value>
AggregateFolder RootFolder { get ; }
/// <summary>
/// Gets a Person.
/// </summary>
/// <param name="name">The name .</param>
/// <param name="name">The name of the person.</param>
/// <returns>Task{Person}.</returns>
Person GetPerson ( string name ) ;
@ -81,7 +98,7 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Gets the artist.
/// </summary>
/// <param name="name">The name .</param>
/// <param name="name">The name of the artist .</param>
/// <returns>Task{Artist}.</returns>
MusicArtist GetArtist ( string name ) ;
@ -90,21 +107,21 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Gets a Studio.
/// </summary>
/// <param name="name">The name .</param>
/// <param name="name">The name of the studio .</param>
/// <returns>Task{Studio}.</returns>
Studio GetStudio ( string name ) ;
/// <summary>
/// Gets a Genre.
/// </summary>
/// <param name="name">The name .</param>
/// <param name="name">The name of the genre .</param>
/// <returns>Task{Genre}.</returns>
Genre GetGenre ( string name ) ;
/// <summary>
/// Gets the genre.
/// </summary>
/// <param name="name">The name .</param>
/// <param name="name">The name of the music genre .</param>
/// <returns>Task{MusicGenre}.</returns>
MusicGenre GetMusicGenre ( string name ) ;
@ -113,7 +130,7 @@ namespace MediaBrowser.Controller.Library
/// </summary>
/// <param name="value">The value.</param>
/// <returns>Task{Year}.</returns>
/// <exception cref="ArgumentOutOfRangeException"> </exception>
/// <exception cref="ArgumentOutOfRangeException"> Throws if year is invalid. </exception>
Year GetYear ( int value ) ;
/// <summary>
@ -205,16 +222,26 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Creates the item.
/// </summary>
/// <param name="item">Item to create.</param>
/// <param name="parent">Parent of new item.</param>
void CreateItem ( BaseItem item , BaseItem parent ) ;
/// <summary>
/// Creates the items.
/// </summary>
/// <param name="items">Items to create.</param>
/// <param name="parent">Parent of new items.</param>
/// <param name="cancellationToken">CancellationToken to use for operation.</param>
void CreateItems ( IReadOnlyList < BaseItem > items , BaseItem parent , CancellationToken cancellationToken ) ;
/// <summary>
/// Updates the item.
/// </summary>
/// <param name="items">Items to update.</param>
/// <param name="parent">Parent of updated items.</param>
/// <param name="updateReason">Reason for update.</param>
/// <param name="cancellationToken">CancellationToken to use for operation.</param>
/// <returns>Returns a Task that can be awaited.</returns>
Task UpdateItemsAsync ( IReadOnlyList < BaseItem > items , BaseItem parent , ItemUpdateType updateReason , CancellationToken cancellationToken ) ;
/// <summary>
@ -224,6 +251,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="parent">The parent item.</param>
/// <param name="updateReason">The update reason.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Returns a Task that can be awaited.</returns>
Task UpdateItemAsync ( BaseItem item , BaseItem parent , ItemUpdateType updateReason , CancellationToken cancellationToken ) ;
/// <summary>
@ -233,23 +261,6 @@ namespace MediaBrowser.Controller.Library
/// <returns>BaseItem.</returns>
BaseItem RetrieveItem ( Guid id ) ;
bool IsScanRunning { get ; }
/// <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>
/// Finds the type of the collection.
/// </summary>
@ -294,16 +305,25 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Deletes the item.
/// </summary>
/// <param name="item">Item to delete.</param>
/// <param name="options">Options to use for deletion.</param>
void DeleteItem ( BaseItem item , DeleteOptions options ) ;
/// <summary>
/// Deletes the item.
/// </summary>
/// <param name="item">Item to delete.</param>
/// <param name="options">Options to use for deletion.</param>
/// <param name="notifyParentItem">Notify parent of deletion.</param>
void DeleteItem ( BaseItem item , DeleteOptions options , bool notifyParentItem ) ;
/// <summary>
/// Deletes the item.
/// </summary>
/// <param name="item">Item to delete.</param>
/// <param name="options">Options to use for deletion.</param>
/// <param name="parent">Parent of item.</param>
/// <param name="notifyParentItem">Notify parent of deletion.</param>
void DeleteItem ( BaseItem item , DeleteOptions options , BaseItem parent , bool notifyParentItem ) ;
/// <summary>
@ -314,6 +334,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="parentId">The parent identifier.</param>
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
/// <returns>The named view.</returns>
UserView GetNamedView (
User user ,
string name ,
@ -328,6 +349,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="name">The name.</param>
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
/// <returns>The named view.</returns>
UserView GetNamedView (
User user ,
string name ,
@ -340,6 +362,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="name">The name.</param>
/// <param name="viewType">Type of the view.</param>
/// <param name="sortName">Name of the sort.</param>
/// <returns>The named view.</returns>
UserView GetNamedView (
string name ,
string viewType ,
@ -397,6 +420,9 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Fills the missing episode numbers from path.
/// </summary>
/// <param name="episode">Episode to use.</param>
/// <param name="forceRefresh">Option to force refresh of episode numbers.</param>
/// <returns>True if successful.</returns>
bool FillMissingEpisodeNumbersFromPath ( Episode episode , bool forceRefresh ) ;
/// <summary>
@ -539,6 +565,9 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Gets the items.
/// </summary>
/// <param name="query">The query to use.</param>
/// <param name="parents">Items to use for query.</param>
/// <returns>List of items.</returns>
List < BaseItem > GetItemList ( InternalItemsQuery query , List < BaseItem > parents ) ;
/// <summary>