diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-03-20 14:16:42 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-03-20 14:16:42 -0400 |
| commit | 3bd850200b82b3c54582589ba002fba2a7a1a0ab (patch) | |
| tree | eebb5cc35471679690c53df50f90d66f844f5dda /MediaBrowser.Server.Implementations/Library/LibraryManager.cs | |
| parent | 2f133e2b751263fdf323afcb7ecd5f8bbb561d1f (diff) | |
| parent | e95bea8954a4a96f9274b5b8f0f5b6f6de02a366 (diff) | |
Merge pull request #1566 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 19b66836b..bf895e5ce 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -813,7 +813,7 @@ namespace MediaBrowser.Server.Implementations.Library { return null; } - + return RootFolder.FindByPath(path); } @@ -1305,7 +1305,7 @@ namespace MediaBrowser.Server.Implementations.Library return item; } - public QueryResult<BaseItem> GetItems(InternalItemsQuery query) + public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query) { if (query.User != null) { @@ -1314,12 +1314,7 @@ namespace MediaBrowser.Server.Implementations.Library var result = ItemRepository.GetItemIdsList(query); - var items = result.Select(GetItemById).Where(i => i != null).ToArray(); - - return new QueryResult<BaseItem> - { - Items = items - }; + return result.Select(GetItemById).Where(i => i != null); } public QueryResult<BaseItem> QueryItems(InternalItemsQuery query) @@ -1342,7 +1337,7 @@ namespace MediaBrowser.Server.Implementations.Library return ItemRepository.GetItemIdsList(query); } - public IEnumerable<BaseItem> GetItems(InternalItemsQuery query, IEnumerable<string> parentIds) + public IEnumerable<BaseItem> GetItemList(InternalItemsQuery query, IEnumerable<string> parentIds) { var parents = parentIds.Select(i => GetItemById(new Guid(i))).Where(i => i != null).ToList(); @@ -1351,13 +1346,39 @@ namespace MediaBrowser.Server.Implementations.Library return GetItemIds(query).Select(GetItemById).Where(i => i != null); } + public QueryResult<BaseItem> GetItemsResult(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); + } + + var initialResult = ItemRepository.GetItemIds(query); + + return new QueryResult<BaseItem> + { + TotalRecordCount = initialResult.TotalRecordCount, + Items = initialResult.Items.Select(GetItemById).Where(i => i != null).ToArray() + }; + } + 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 GetItems(query); + return GetItemsResult(query); } private void SetTopParentIdsOrAncestors(InternalItemsQuery query, List<BaseItem> parents) @@ -2545,7 +2566,7 @@ namespace MediaBrowser.Server.Implementations.Library // Remove this image to prevent it from retrying over and over item.RemoveImage(image); await item.UpdateToRepository(ItemUpdateType.ImageUpdate, CancellationToken.None).ConfigureAwait(false); - + throw new InvalidOperationException(); } } |
