aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs')
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs33
1 files changed, 17 insertions, 16 deletions
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index 24d0a7d52..ed0c4069b 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -10,6 +10,7 @@ using System.Linq;
using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Services;
+using MediaBrowser.Model.Extensions;
namespace MediaBrowser.Api.UserLibrary
{
@@ -87,7 +88,7 @@ namespace MediaBrowser.Api.UserLibrary
return null;
}
- protected ItemsResult GetResultSlim(GetItemsByName request)
+ protected QueryResult<BaseItemDto> GetResultSlim(GetItemsByName request)
{
var dtoOptions = GetDtoOptions(AuthorizationContext, request);
@@ -208,9 +209,9 @@ namespace MediaBrowser.Api.UserLibrary
return dto;
});
- return new ItemsResult
+ return new QueryResult<BaseItemDto>
{
- Items = dtos.ToArray(),
+ Items = dtos.ToArray(result.Items.Length),
TotalRecordCount = result.TotalRecordCount
};
}
@@ -239,7 +240,7 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
/// <param name="request">The request.</param>
/// <returns>Task{ItemsResult}.</returns>
- protected ItemsResult GetResult(GetItemsByName request)
+ protected QueryResult<BaseItemDto> GetResult(GetItemsByName request)
{
var dtoOptions = GetDtoOptions(AuthorizationContext, request);
@@ -256,7 +257,7 @@ namespace MediaBrowser.Api.UserLibrary
parentItem = string.IsNullOrEmpty(request.ParentId) ? LibraryManager.RootFolder : LibraryManager.GetItemById(request.ParentId);
}
- IEnumerable<BaseItem> items;
+ IList<BaseItem> items;
var excludeItemTypes = request.GetExcludeItemTypes();
var includeItemTypes = request.GetIncludeItemTypes();
@@ -279,32 +280,32 @@ namespace MediaBrowser.Api.UserLibrary
if (!string.IsNullOrWhiteSpace(request.UserId))
{
items = request.Recursive ?
- folder.GetRecursiveChildren(user, query) :
- folder.GetChildren(user, true).Where(filter);
+ folder.GetRecursiveChildren(user, query).ToList() :
+ folder.GetChildren(user, true).Where(filter).ToList();
}
else
{
items = request.Recursive ?
folder.GetRecursiveChildren(filter) :
- folder.Children.Where(filter);
+ folder.Children.Where(filter).ToList();
}
}
else
{
- items = new[] { parentItem }.Where(filter);
+ items = new[] { parentItem }.Where(filter).ToList();
}
var extractedItems = GetAllItems(request, items);
var filteredItems = FilterItems(request, extractedItems, user);
- filteredItems = LibraryManager.Sort(filteredItems, user, request.GetOrderBy(), request.SortOrder ?? SortOrder.Ascending);
+ filteredItems = LibraryManager.Sort(filteredItems, user, request.GetOrderBy());
var ibnItemsArray = filteredItems.ToList();
IEnumerable<BaseItem> ibnItems = ibnItemsArray;
- var result = new ItemsResult
+ var result = new QueryResult<BaseItemDto>
{
TotalRecordCount = ibnItemsArray.Count
};
@@ -356,13 +357,13 @@ namespace MediaBrowser.Api.UserLibrary
items = items.Where(i => string.Compare(request.NameLessThan, i.SortName, StringComparison.CurrentCultureIgnoreCase) == 1);
}
- var imageTypes = request.GetImageTypes().ToList();
- if (imageTypes.Count > 0)
+ var imageTypes = request.GetImageTypes();
+ if (imageTypes.Length > 0)
{
items = items.Where(item => imageTypes.Any(item.HasImage));
}
- var filters = request.GetFilters().ToList();
+ var filters = request.GetFilters();
if (filters.Contains(ItemFilter.Dislikes))
{
@@ -499,13 +500,13 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="request">The request.</param>
/// <param name="items">The items.</param>
/// <returns>IEnumerable{Task{`0}}.</returns>
- protected abstract IEnumerable<BaseItem> GetAllItems(GetItemsByName request, IEnumerable<BaseItem> items);
+ protected abstract IEnumerable<BaseItem> GetAllItems(GetItemsByName request, IList<BaseItem> items);
}
/// <summary>
/// Class GetItemsByName
/// </summary>
- public class GetItemsByName : BaseItemsRequest, IReturn<ItemsResult>
+ public class GetItemsByName : BaseItemsRequest, IReturn<QueryResult<BaseItemDto>>
{
public GetItemsByName()
{