diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Dto/DtoService.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Dto/DtoService.cs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 6e8c9d3eb..936239657 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -163,8 +163,7 @@ namespace MediaBrowser.Server.Implementations.Dto { var folder = (Folder)item; - dto.ChildCount = folder.GetChildren(user, true) - .Count(); + dto.ChildCount = GetChildCount(folder, user); if (!(folder is UserRootFolder)) { @@ -182,6 +181,12 @@ namespace MediaBrowser.Server.Implementations.Dto } } + private int GetChildCount(Folder folder, User user) + { + return folder.GetChildren(user, true) + .Count(); + } + public UserDto GetUserDto(User user) { if (user == null) @@ -1067,6 +1072,7 @@ namespace MediaBrowser.Server.Implementations.Dto dto.AirsAfterSeasonNumber = episode.AirsAfterSeasonNumber; dto.AirsBeforeEpisodeNumber = episode.AirsBeforeEpisodeNumber; dto.AirsBeforeSeasonNumber = episode.AirsBeforeSeasonNumber; + dto.AbsoluteEpisodeNumber = episode.AbsoluteEpisodeNumber; var seasonId = episode.SeasonId; if (seasonId.HasValue) @@ -1202,8 +1208,21 @@ namespace MediaBrowser.Server.Implementations.Dto double totalPercentPlayed = 0; + IEnumerable<BaseItem> children; + + var season = folder as Season; + + if (season != null) + { + children = season.GetEpisodes(user).Where(i => i.LocationType != LocationType.Virtual); + } + else + { + children = folder.GetRecursiveChildren(user, i => !i.IsFolder && i.LocationType != LocationType.Virtual); + } + // Loop through each recursive child - foreach (var child in folder.GetRecursiveChildren(user, i => !i.IsFolder && i.LocationType != LocationType.Virtual)) + foreach (var child in children) { var userdata = _userDataRepository.GetUserData(user.Id, child.GetUserDataKey()); |
