diff options
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs | 33 |
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() { |
