diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-06-30 15:04:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-30 15:04:23 -0400 |
| commit | 5fb3149422be5e0eebc32472efc8e7f6a86c5100 (patch) | |
| tree | c3360f59367c98750765e037cd6f038099f9457b /MediaBrowser.Server.Implementations/Library/LibraryManager.cs | |
| parent | a8b377d745af71a57b040ff1cc4bd91f4fffce77 (diff) | |
| parent | 1dfe694a770586ab37ddd57c9f59d6e87d34c463 (diff) | |
Merge pull request #1895 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ffcf9f60f..c118f9483 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -1277,6 +1277,16 @@ namespace MediaBrowser.Server.Implementations.Library public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query) { + if (query.Recursive && query.ParentId.HasValue) + { + var parent = GetItemById(query.ParentId.Value); + if (parent != null) + { + SetTopParentIdsOrAncestors(query, new List<BaseItem> { parent }); + query.ParentId = null; + } + } + if (query.User != null) { AddUserToQuery(query, query.User); @@ -1285,6 +1295,23 @@ namespace MediaBrowser.Server.Implementations.Library return ItemRepository.GetItemList(query); } + public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query, IEnumerable<string> parentIds) + { + var parents = parentIds.Select(i => GetItemById(new Guid(i))).Where(i => i != null).ToList(); + + SetTopParentIdsOrAncestors(query, parents); + + if (query.AncestorIds.Length == 0 && query.TopParentIds.Length == 0) + { + if (query.User != null) + { + AddUserToQuery(query, query.User); + } + } + + return ItemRepository.GetItemList(query); + } + public QueryResult<BaseItem> QueryItems(InternalItemsQuery query) { if (query.User != null) @@ -1406,15 +1433,6 @@ namespace MediaBrowser.Server.Implementations.Library return ItemRepository.GetAlbumArtists(query); } - public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query, IEnumerable<string> parentIds) - { - var parents = parentIds.Select(i => GetItemById(new Guid(i))).Where(i => i != null).ToList(); - - SetTopParentIdsOrAncestors(query, parents); - - return ItemRepository.GetItemList(query); - } - public QueryResult<BaseItem> GetItemsResult(InternalItemsQuery query) { if (query.Recursive && query.ParentId.HasValue) @@ -1443,15 +1461,6 @@ namespace MediaBrowser.Server.Implementations.Library }; } - public QueryResult<BaseItem> GetItemsResult(InternalItemsQuery query, IEnumerable<string> parentIds) - { - var parents = parentIds.Select(i => GetItemById(new Guid(i))).Where(i => i != null).ToList(); - - SetTopParentIdsOrAncestors(query, parents); - - return GetItemsResult(query); - } - private void SetTopParentIdsOrAncestors(InternalItemsQuery query, List<BaseItem> parents) { if (parents.All(i => |
