aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/Folder.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-12-13 02:36:30 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-12-13 02:36:30 -0500
commite1b880a5a072764cabace79cd6d1d65315ec65e4 (patch)
tree971f995ffd89246ca96c80b44a6266315812e4de /MediaBrowser.Controller/Entities/Folder.cs
parentbff0cd4447119278d6aab5961f79f8a17c566a04 (diff)
update series queries
Diffstat (limited to 'MediaBrowser.Controller/Entities/Folder.cs')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs36
1 files changed, 20 insertions, 16 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 4705f03fa..a84e9a5d2 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -1222,7 +1222,7 @@ namespace MediaBrowser.Controller.Entities
/// Refreshes the linked children.
/// </summary>
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
- private bool RefreshLinkedChildren(IEnumerable<FileSystemMetadata> fileSystemChildren)
+ protected virtual bool RefreshLinkedChildren(IEnumerable<FileSystemMetadata> fileSystemChildren)
{
var currentManualLinks = LinkedChildren.Where(i => i.Type == LinkedChildType.Manual).ToList();
var currentShortcutLinks = LinkedChildren.Where(i => i.Type == LinkedChildType.Shortcut).ToList();
@@ -1410,23 +1410,24 @@ namespace MediaBrowser.Controller.Entities
}
}
- public override async Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user)
+ public override async Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> itemFields)
{
if (!SupportsUserDataFromChildren)
{
return;
}
- var recursiveItemCount = GetRecursiveChildCount(user);
-
if (itemDto != null)
{
- itemDto.RecursiveItemCount = recursiveItemCount;
+ if (itemFields.Contains(ItemFields.RecursiveItemCount))
+ {
+ itemDto.RecursiveItemCount = GetRecursiveChildCount(user);
+ }
}
- if (recursiveItemCount > 0 && SupportsPlayedStatus)
+ if (SupportsPlayedStatus)
{
- var unplayedQueryResult = recursiveItemCount > 0 ? await GetItems(new InternalItemsQuery(user)
+ var unplayedQueryResult = await GetItems(new InternalItemsQuery(user)
{
Recursive = true,
IsFolder = false,
@@ -1435,21 +1436,24 @@ namespace MediaBrowser.Controller.Entities
Limit = 0,
IsPlayed = false
- }).ConfigureAwait(false) : new QueryResult<BaseItem>();
+ }).ConfigureAwait(false);
double unplayedCount = unplayedQueryResult.TotalRecordCount;
- var unplayedPercentage = (unplayedCount / recursiveItemCount) * 100;
- dto.PlayedPercentage = 100 - unplayedPercentage;
- dto.Played = dto.PlayedPercentage.Value >= 100;
dto.UnplayedItemCount = unplayedQueryResult.TotalRecordCount;
- }
- if (itemDto != null)
- {
- if (this is Season || this is MusicAlbum)
+ if (itemDto != null && itemDto.RecursiveItemCount.HasValue)
+ {
+ if (itemDto.RecursiveItemCount.Value > 0)
+ {
+ var unplayedPercentage = (unplayedCount/itemDto.RecursiveItemCount.Value)*100;
+ dto.PlayedPercentage = 100 - unplayedPercentage;
+ dto.Played = dto.PlayedPercentage.Value >= 100;
+ }
+ }
+ else
{
- itemDto.ChildCount = recursiveItemCount;
+ dto.Played = (dto.UnplayedItemCount ?? 0) == 0;
}
}
}