aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary/ItemsService.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-02-09 16:58:30 -0500
committerLuke <luke.pulverenti@gmail.com>2015-02-09 16:58:30 -0500
commit4cc3b2f0ccd7c092a4acf72db4903415e175037a (patch)
treef9f90f8665b726253b8b357674f2f141aa43abc9 /MediaBrowser.Api/UserLibrary/ItemsService.cs
parente7037a9b80843c127712f11430239f8fa3cb4aed (diff)
parent3d7089a7dbabb652730c892206ca050f52f832b1 (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.cs53
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,