aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Library/ILibraryManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Library/ILibraryManager.cs')
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs61
1 files changed, 44 insertions, 17 deletions
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 6532f7a34..b802b7e6e 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -1,5 +1,3 @@
-#nullable disable
-
#pragma warning disable CA1002, CS1591
using System;
@@ -33,17 +31,17 @@ namespace MediaBrowser.Controller.Library
/// <summary>
/// Occurs when [item added].
/// </summary>
- event EventHandler<ItemChangeEventArgs> ItemAdded;
+ event EventHandler<ItemChangeEventArgs>? ItemAdded;
/// <summary>
/// Occurs when [item updated].
/// </summary>
- event EventHandler<ItemChangeEventArgs> ItemUpdated;
+ event EventHandler<ItemChangeEventArgs>? ItemUpdated;
/// <summary>
/// Occurs when [item removed].
/// </summary>
- event EventHandler<ItemChangeEventArgs> ItemRemoved;
+ event EventHandler<ItemChangeEventArgs>? ItemRemoved;
/// <summary>
/// Gets the root folder.
@@ -60,10 +58,10 @@ namespace MediaBrowser.Controller.Library
/// <param name="parent">The parent.</param>
/// <param name="directoryService">An instance of <see cref="IDirectoryService"/>.</param>
/// <returns>BaseItem.</returns>
- BaseItem ResolvePath(
+ BaseItem? ResolvePath(
FileSystemMetadata fileInfo,
- Folder parent = null,
- IDirectoryService directoryService = null);
+ Folder? parent = null,
+ IDirectoryService? directoryService = null);
/// <summary>
/// Resolves a set of files into a list of BaseItem.
@@ -86,7 +84,7 @@ namespace MediaBrowser.Controller.Library
/// </summary>
/// <param name="name">The name of the person.</param>
/// <returns>Task{Person}.</returns>
- Person GetPerson(string name);
+ Person? GetPerson(string name);
/// <summary>
/// Finds the by path.
@@ -94,7 +92,7 @@ namespace MediaBrowser.Controller.Library
/// <param name="path">The path.</param>
/// <param name="isFolder"><c>true</c> is the path is a directory; otherwise <c>false</c>.</param>
/// <returns>BaseItem.</returns>
- BaseItem FindByPath(string path, bool? isFolder);
+ BaseItem? FindByPath(string path, bool? isFolder);
/// <summary>
/// Gets the artist.
@@ -151,6 +149,14 @@ namespace MediaBrowser.Controller.Library
/// <returns>Task.</returns>
Task ValidateMediaLibrary(IProgress<double> progress, CancellationToken cancellationToken);
+ /// <summary>
+ /// Reloads the root media folder.
+ /// </summary>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <param name="removeRoot">Is remove the library itself allowed.</param>
+ /// <returns>Task.</returns>
+ Task ValidateTopLibraryFolders(CancellationToken cancellationToken, bool removeRoot = false);
+
Task UpdateImagesAsync(BaseItem item, bool forceUpdate = false);
/// <summary>
@@ -166,7 +172,8 @@ namespace MediaBrowser.Controller.Library
/// </summary>
/// <param name="id">The id.</param>
/// <returns>BaseItem.</returns>
- BaseItem GetItemById(Guid id);
+ /// <exception cref="ArgumentNullException"><paramref name="id"/> is <c>null</c>.</exception>
+ BaseItem? GetItemById(Guid id);
/// <summary>
/// Gets the item by id, as T.
@@ -174,7 +181,27 @@ namespace MediaBrowser.Controller.Library
/// <param name="id">The item id.</param>
/// <typeparam name="T">The type of item.</typeparam>
/// <returns>The item.</returns>
- T GetItemById<T>(Guid id)
+ T? GetItemById<T>(Guid id)
+ where T : BaseItem;
+
+ /// <summary>
+ /// Gets the item by id, as T, and validates user access.
+ /// </summary>
+ /// <param name="id">The item id.</param>
+ /// <param name="userId">The user id to validate against.</param>
+ /// <typeparam name="T">The type of item.</typeparam>
+ /// <returns>The item if found.</returns>
+ public T? GetItemById<T>(Guid id, Guid userId)
+ where T : BaseItem;
+
+ /// <summary>
+ /// Gets the item by id, as T, and validates user access.
+ /// </summary>
+ /// <param name="id">The item id.</param>
+ /// <param name="user">The user to validate against.</param>
+ /// <typeparam name="T">The type of item.</typeparam>
+ /// <returns>The item if found.</returns>
+ public T? GetItemById<T>(Guid id, User? user)
where T : BaseItem;
/// <summary>
@@ -208,9 +235,9 @@ namespace MediaBrowser.Controller.Library
/// <param name="sortBy">The sort by.</param>
/// <param name="sortOrder">The sort order.</param>
/// <returns>IEnumerable{BaseItem}.</returns>
- IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<ItemSortBy> sortBy, SortOrder sortOrder);
+ IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User? user, IEnumerable<ItemSortBy> sortBy, SortOrder sortOrder);
- IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User user, IEnumerable<(ItemSortBy OrderBy, SortOrder SortOrder)> orderBy);
+ IEnumerable<BaseItem> Sort(IEnumerable<BaseItem> items, User? user, IEnumerable<(ItemSortBy OrderBy, SortOrder SortOrder)> orderBy);
/// <summary>
/// Gets the user root folder.
@@ -223,7 +250,7 @@ namespace MediaBrowser.Controller.Library
/// </summary>
/// <param name="item">Item to create.</param>
/// <param name="parent">Parent of new item.</param>
- void CreateItem(BaseItem item, BaseItem parent);
+ void CreateItem(BaseItem item, BaseItem? parent);
/// <summary>
/// Creates the items.
@@ -231,7 +258,7 @@ namespace MediaBrowser.Controller.Library
/// <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);
+ void CreateItems(IReadOnlyList<BaseItem> items, BaseItem? parent, CancellationToken cancellationToken);
/// <summary>
/// Updates the item.
@@ -509,7 +536,7 @@ namespace MediaBrowser.Controller.Library
/// <returns>QueryResult&lt;BaseItem&gt;.</returns>
QueryResult<BaseItem> QueryItems(InternalItemsQuery query);
- string GetPathAfterNetworkSubstitution(string path, BaseItem ownerItem = null);
+ string GetPathAfterNetworkSubstitution(string path, BaseItem? ownerItem = null);
/// <summary>
/// Converts the image to local.