diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-02-09 16:58:30 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-02-09 16:58:30 -0500 |
| commit | 4cc3b2f0ccd7c092a4acf72db4903415e175037a (patch) | |
| tree | f9f90f8665b726253b8b357674f2f141aa43abc9 /MediaBrowser.Api/UserLibrary/ItemsService.cs | |
| parent | e7037a9b80843c127712f11430239f8fa3cb4aed (diff) | |
| parent | 3d7089a7dbabb652730c892206ca050f52f832b1 (diff) | |
Merge pull request #1005 from MediaBrowser/dev
3.0.5518.0
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 53 |
1 files changed, 14 insertions, 39 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index cf9b0b438..9b5ef3a98 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -169,8 +169,6 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "ExcludeLocationTypes", Description = "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)] public string ExcludeLocationTypes { get; set; } - public bool IncludeIndexContainers { get; set; } - [ApiMember(Name = "IsMissing", Description = "Optional filter by items that are missing episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsMissing { get; set; } @@ -321,14 +319,14 @@ namespace MediaBrowser.Api.UserLibrary var result = await GetItemsToSerialize(request, user, parentItem).ConfigureAwait(false); var isFiltered = result.Item2; - var dtoOptions = request.GetDtoOptions(); + var dtoOptions = GetDtoOptions(request); if (isFiltered) { return new ItemsResult { TotalRecordCount = result.Item1.TotalRecordCount, - Items = result.Item1.Items.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)).ToArray() + Items = _dtoService.GetBaseItemDtos(result.Item1.Items, dtoOptions, user).ToArray() }; } @@ -362,7 +360,7 @@ namespace MediaBrowser.Api.UserLibrary var pagedItems = ApplyPaging(request, itemsArray); - var returnItems = pagedItems.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user)).ToArray(); + var returnItems = _dtoService.GetBaseItemDtos(pagedItems, dtoOptions, user).ToArray(); return new ItemsResult { @@ -396,52 +394,29 @@ namespace MediaBrowser.Api.UserLibrary else if (request.Recursive) { - if (user == null) - { - items = ((Folder)item).RecursiveChildren; + var result = await ((Folder)item).GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); - items = _libraryManager.ReplaceVideosWithPrimaryVersions(items); - } - else - { - var result = await ((Folder)item).GetItems(GetItemsQuery(request, user)); - - return new Tuple<QueryResult<BaseItem>, bool>(result, true); - } + return new Tuple<QueryResult<BaseItem>, bool>(result, true); } else { if (user == null) { - items = ((Folder)item).Children; + var result = await ((Folder)item).GetItems(GetItemsQuery(request, null)).ConfigureAwait(false); - items = _libraryManager.ReplaceVideosWithPrimaryVersions(items); + return new Tuple<QueryResult<BaseItem>, bool>(result, true); } - else - { - var userRoot = item as UserRootFolder; - if (userRoot == null) - { - var result = await ((Folder)item).GetItems(GetItemsQuery(request, user)); + var userRoot = item as UserRootFolder; - return new Tuple<QueryResult<BaseItem>, bool>(result, true); - } + if (userRoot == null) + { + var result = await ((Folder)item).GetItems(GetItemsQuery(request, user)).ConfigureAwait(false); - items = ((Folder)item).GetChildren(user, true); + return new Tuple<QueryResult<BaseItem>, bool>(result, true); } - } - - if (request.IncludeIndexContainers) - { - var list = items.ToList(); - - var containers = list.Select(i => i.IndexContainer) - .Where(i => i != null); - - list.AddRange(containers); - items = list.Distinct(); + items = ((Folder)item).GetChildren(user, true); } return new Tuple<QueryResult<BaseItem>, bool>(new QueryResult<BaseItem> @@ -464,7 +439,7 @@ namespace MediaBrowser.Api.UserLibrary SortBy = request.GetOrderBy(), SortOrder = request.SortOrder ?? SortOrder.Ascending, - Filter = (i, u) => ApplyAdditionalFilters(request, i, u, true, _libraryManager), + Filter = i => ApplyAdditionalFilters(request, i, user, true, _libraryManager), Limit = request.Limit, StartIndex = request.StartIndex, |
