From b36aea4ff74052ae40c27db057f50f645659aa57 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 16 Mar 2014 00:23:58 -0400 Subject: #712 - Support grouping multiple versions of a movie --- MediaBrowser.Controller/Entities/Video.cs | 86 ++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 18 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index e30458dd8f..18db21f382 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Persistence; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Entities; @@ -20,26 +21,27 @@ namespace MediaBrowser.Controller.Entities { public bool IsMultiPart { get; set; } public bool HasLocalAlternateVersions { get; set; } + public Guid? PrimaryVersionId { get; set; } public List AdditionalPartIds { get; set; } - public List AlternateVersionIds { get; set; } + public List LocalAlternateVersionIds { get; set; } public Video() { PlayableStreamFileNames = new List(); AdditionalPartIds = new List(); - AlternateVersionIds = new List(); + LocalAlternateVersionIds = new List(); Tags = new List(); SubtitleFiles = new List(); LinkedAlternateVersions = new List(); } [IgnoreDataMember] - public bool HasAlternateVersions + public int AlternateVersionCount { get { - return HasLocalAlternateVersions || LinkedAlternateVersions.Count > 0; + return LinkedAlternateVersions.Count + LocalAlternateVersionIds.Count; } } @@ -51,7 +53,7 @@ namespace MediaBrowser.Controller.Entities /// IEnumerable{BaseItem}. public IEnumerable GetAlternateVersions() { - var filesWithinSameDirectory = AlternateVersionIds + var filesWithinSameDirectory = LocalAlternateVersionIds .Select(i => LibraryManager.GetItemById(i)) .Where(i => i != null) .OfType