resolve issue with querying by multiple item ids

This commit is contained in:
Luke Pulverenti
2016-04-02 17:08:35 -04:00
parent cbcadbf892
commit 9b339d7cae
9 changed files with 27 additions and 19 deletions

View File

@@ -38,7 +38,7 @@ namespace MediaBrowser.Controller.Channels
set { }
}
public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
try
{

View File

@@ -44,7 +44,7 @@ namespace MediaBrowser.Controller.Channels
return ExternalId;
}
public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
try
{

View File

@@ -111,7 +111,7 @@ namespace MediaBrowser.Controller.Entities
[IgnoreDataMember]
protected virtual bool SupportsShortcutChildren
{
get { return ConfigurationManager.Configuration.EnableWindowsShortcuts; }
get { return false; }
}
/// <summary>
@@ -1122,7 +1122,18 @@ namespace MediaBrowser.Controller.Entities
return false;
}
public virtual async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
public Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
{
if (query.ItemIds.Length > 0)
{
var specificItems = query.ItemIds.Select(LibraryManager.GetItemById).Where(i => i != null).ToList();
return Task.FromResult(PostFilterAndSort(specificItems, query));
}
return GetItemsInternal(query);
}
protected virtual async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
if (SourceType == SourceType.Channel)
{
@@ -1175,9 +1186,7 @@ namespace MediaBrowser.Controller.Entities
: GetChildren(user, true).Where(filter);
}
var result = PostFilterAndSort(items, query);
return result;
return PostFilterAndSort(items, query);
}
protected QueryResult<BaseItem> PostFilterAndSort(IEnumerable<BaseItem> items, InternalItemsQuery query)

View File

@@ -129,7 +129,7 @@ namespace MediaBrowser.Controller.Entities.TV
get { return (IndexNumber ?? -1) == 0; }
}
public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var user = query.User;

View File

@@ -157,7 +157,7 @@ namespace MediaBrowser.Controller.Entities.TV
return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var user = query.User;

View File

@@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Library;
namespace MediaBrowser.Controller.Entities
{
@@ -17,7 +18,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
public class UserRootFolder : Folder
{
public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
if (query.Recursive)
{

View File

@@ -45,7 +45,7 @@ namespace MediaBrowser.Controller.Entities
return list;
}
public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
protected override Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
{
var parent = this as Folder;