From 023b12a798d6bf475a3b20488c1921e7fdb68dc5 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 15 Jun 2016 14:56:37 -0400 Subject: update recording format --- .../Dto/DtoService.cs | 37 +++++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Dto') diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 2c31a8aae9..a2d895e2c1 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -469,22 +469,31 @@ namespace MediaBrowser.Server.Implementations.Dto { if (item.IsFolder) { - var userData = _userDataRepository.GetUserData(user, item); - - // Skip the user data manager because we've already looped through the recursive tree and don't want to do it twice - // TODO: Improve in future - dto.UserData = GetUserItemDataDto(userData); - var folder = (Folder)item; - if (item.SourceType == SourceType.Library) + if (fields.Contains(ItemFields.SyncInfo)) { - dto.ChildCount = GetChildCount(folder, user); + var userData = _userDataRepository.GetUserData(user, item); + + // Skip the user data manager because we've already looped through the recursive tree and don't want to do it twice + // TODO: Improve in future + dto.UserData = GetUserItemDataDto(userData); - if (folder.SupportsUserDataFromChildren) + if (item.SourceType == SourceType.Library && folder.SupportsUserDataFromChildren) { SetSpecialCounts(folder, user, dto, fields, syncProgress); } + + dto.UserData.Played = dto.UserData.PlayedPercentage.HasValue && dto.UserData.PlayedPercentage.Value >= 100; + } + else + { + dto.UserData = _userDataRepository.GetUserDataDto(item, user); + } + + if (item.SourceType == SourceType.Library) + { + dto.ChildCount = GetChildCount(folder, user); } if (fields.Contains(ItemFields.CumulativeRunTimeTicks)) @@ -496,8 +505,6 @@ namespace MediaBrowser.Server.Implementations.Dto { dto.DateLastMediaAdded = folder.DateLastMediaAdded; } - - dto.UserData.Played = dto.UserData.PlayedPercentage.HasValue && dto.UserData.PlayedPercentage.Value >= 100; } else @@ -1586,12 +1593,18 @@ namespace MediaBrowser.Server.Implementations.Dto /// Task. private void SetSpecialCounts(Folder folder, User user, BaseItemDto dto, List fields, Dictionary syncProgress) { + var addSyncInfo = fields.Contains(ItemFields.SyncInfo); + + if (!addSyncInfo) + { + return; + } + var recursiveItemCount = 0; var unplayed = 0; double totalPercentPlayed = 0; double totalSyncPercent = 0; - var addSyncInfo = fields.Contains(ItemFields.SyncInfo); var children = folder.GetItems(new InternalItemsQuery { -- cgit v1.2.3