reduce library queries

This commit is contained in:
Luke Pulverenti
2016-11-21 03:54:53 -05:00
parent 1dc080df8b
commit f275d7f3d2
32 changed files with 230 additions and 176 deletions

View File

@@ -1383,6 +1383,15 @@ namespace MediaBrowser.Controller.Entities
{
return false;
}
var iItemByName = this as IItemByName;
if (iItemByName != null)
{
var hasDualAccess = this as IHasDualAccess;
if (hasDualAccess == null || hasDualAccess.IsAccessedByName)
{
return false;
}
}
return true;
}
@@ -1395,17 +1404,6 @@ namespace MediaBrowser.Controller.Entities
return;
}
var unplayedQueryResult = await GetItems(new InternalItemsQuery(user)
{
Recursive = true,
IsFolder = false,
IsVirtualItem = false,
EnableTotalRecordCount = true,
Limit = 0,
IsPlayed = false
}).ConfigureAwait(false);
var allItemsQueryResult = await GetItems(new InternalItemsQuery(user)
{
Recursive = true,
@@ -1415,17 +1413,28 @@ namespace MediaBrowser.Controller.Entities
Limit = 0
}).ConfigureAwait(false);
var recursiveItemCount = allItemsQueryResult.TotalRecordCount;
if (itemDto != null)
{
itemDto.RecursiveItemCount = allItemsQueryResult.TotalRecordCount;
}
var recursiveItemCount = allItemsQueryResult.TotalRecordCount;
double unplayedCount = unplayedQueryResult.TotalRecordCount;
if (recursiveItemCount > 0)
if (recursiveItemCount > 0 && SupportsPlayedStatus)
{
var unplayedQueryResult = recursiveItemCount > 0 ? await GetItems(new InternalItemsQuery(user)
{
Recursive = true,
IsFolder = false,
IsVirtualItem = false,
EnableTotalRecordCount = true,
Limit = 0,
IsPlayed = false
}).ConfigureAwait(false) : new QueryResult<BaseItem>();
double unplayedCount = unplayedQueryResult.TotalRecordCount;
var unplayedPercentage = (unplayedCount / recursiveItemCount) * 100;
dto.PlayedPercentage = 100 - unplayedPercentage;
dto.Played = dto.PlayedPercentage.Value >= 100;