aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Persistence/IItemQueryHelpers.cs13
1 files changed, 13 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Persistence/IItemQueryHelpers.cs b/MediaBrowser.Controller/Persistence/IItemQueryHelpers.cs
index 45fa92c90b..2e29cbdbba 100644
--- a/MediaBrowser.Controller/Persistence/IItemQueryHelpers.cs
+++ b/MediaBrowser.Controller/Persistence/IItemQueryHelpers.cs
@@ -79,6 +79,19 @@ public interface IItemQueryHelpers
Guid ancestorId);
/// <summary>
+ /// Builds an <see cref="IQueryable{Guid}"/> of folder IDs whose descendants are all played
+ /// for the given user. Composable into outer queries to avoid an extra DB roundtrip.
+ /// </summary>
+ /// <param name="context">The database context the resulting query is bound to.</param>
+ /// <param name="folderIds">A query yielding candidate folder IDs.</param>
+ /// <param name="user">The user for access filtering and played status.</param>
+ /// <returns>An <see cref="IQueryable{Guid}"/> of fully-played folder IDs.</returns>
+ IQueryable<Guid> GetFullyPlayedFolderIdsQuery(
+ JellyfinDbContext context,
+ IQueryable<Guid> folderIds,
+ User user);
+
+ /// <summary>
/// Deserializes a <see cref="BaseItemEntity"/> into a <see cref="BaseItem"/>.
/// </summary>
/// <param name="entity">The database entity.</param>