From bb721f610b4063c64111ca524920cd8062e64ec3 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 25 Jul 2013 15:17:44 -0400 Subject: Added CumulativeRunTimeTicks --- MediaBrowser.Controller/Dto/DtoBuilder.cs | 22 ++++++++++++++++++---- .../Resolvers/EntityResolutionHelper.cs | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 078b3c664..6f9836448 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -277,12 +277,16 @@ namespace MediaBrowser.Controller.Dto if (item.IsFolder) { - if (fields.Contains(ItemFields.ItemCounts)) + var hasItemCounts = fields.Contains(ItemFields.ItemCounts); + + if (hasItemCounts || fields.Contains(ItemFields.CumulativeRunTimeTicks)) { var folder = (Folder)item; - // Skip sorting since all we want is a count - dto.ChildCount = folder.GetChildren(user, true).Count(); + if (hasItemCounts) + { + dto.ChildCount = folder.GetChildren(user, true).Count(); + } SetSpecialCounts(folder, user, dto, _userDataRepository); } @@ -749,6 +753,7 @@ namespace MediaBrowser.Controller.Dto var rcentlyAddedItemCount = 0; var recursiveItemCount = 0; var unplayed = 0; + long runtime = 0; double totalPercentPlayed = 0; @@ -788,6 +793,8 @@ namespace MediaBrowser.Controller.Dto { unplayed++; } + + runtime += child.RunTimeTicks ?? 0; } dto.RecursiveItemCount = recursiveItemCount; @@ -798,6 +805,11 @@ namespace MediaBrowser.Controller.Dto { dto.PlayedPercentage = totalPercentPlayed / recursiveItemCount; } + + if (runtime > 0) + { + dto.CumulativeRunTimeTicks = runtime; + } } /// @@ -833,7 +845,9 @@ namespace MediaBrowser.Controller.Dto )).ConfigureAwait(false); - var dictionary = entities.Where(i => i != null).ToDictionary(i => i.Name, StringComparer.OrdinalIgnoreCase); + var dictionary = entities.Where(i => i != null) + .Distinct() + .ToDictionary(i => i.Name, StringComparer.OrdinalIgnoreCase); for (var i = 0; i < people.Count; i++) { diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index d57c354f7..9564bf5a8 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -24,6 +24,7 @@ namespace MediaBrowser.Controller.Resolvers ".m2ts", ".img", ".iso", + ".mk3d", ".ts", ".rmvb", ".mov", -- cgit v1.2.3