#712 - group multiple versions

This commit is contained in:
Luke Pulverenti
2014-03-18 21:35:40 -04:00
parent 4d1d2bbaa1
commit fbfcfdcf07
9 changed files with 109 additions and 89 deletions

View File

@@ -2,7 +2,7 @@
namespace MediaBrowser.Controller.Channels
{
public class ChannelAudioItem : Audio, IChannelItem
public class ChannelAudioItem : Audio, IChannelMediaItem
{
public string ExternalId { get; set; }

View File

@@ -2,7 +2,12 @@
namespace MediaBrowser.Controller.Channels
{
public class ChannelCategoryItem : Folder
public class ChannelCategoryItem : Folder, IChannelItem
{
public string ExternalId { get; set; }
public ChannelItemType ChannelItemType { get; set; }
public string OriginalImageUrl { get; set; }
}
}

View File

@@ -2,7 +2,7 @@
namespace MediaBrowser.Controller.Channels
{
public class ChannelVideoItem : Video, IChannelItem
public class ChannelVideoItem : Video, IChannelMediaItem
{
public string ExternalId { get; set; }

View File

@@ -8,10 +8,13 @@ namespace MediaBrowser.Controller.Channels
ChannelItemType ChannelItemType { get; set; }
string OriginalImageUrl { get; set; }
}
public interface IChannelMediaItem : IChannelItem
{
bool IsInfiniteStream { get; set; }
ChannelMediaContentType ContentType { get; set; }
string OriginalImageUrl { get; set; }
}
}

View File

@@ -51,19 +51,25 @@ namespace MediaBrowser.Controller.Entities
/// Gets the linked children.
/// </summary>
/// <returns>IEnumerable{BaseItem}.</returns>
public IEnumerable<BaseItem> GetAlternateVersions()
public IEnumerable<Video> GetAlternateVersions()
{
var filesWithinSameDirectory = LocalAlternateVersionIds
.Select(i => LibraryManager.GetItemById(i))
.Where(i => i != null)
.OfType<Video>();
return filesWithinSameDirectory.Concat(GetLinkedAlternateVersions())
.OrderBy(i => i.SortName);
}
public IEnumerable<Video> GetLinkedAlternateVersions()
{
var linkedVersions = LinkedAlternateVersions
.Select(GetLinkedChild)
.Where(i => i != null)
.OfType<Video>();
return filesWithinSameDirectory.Concat(linkedVersions)
return linkedVersions
.OrderBy(i => i.SortName);
}