From 365a992736a719a8183d7c031829770d7a62dcaa Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 12 Jul 2015 15:33:00 -0400 Subject: [PATCH] update dto dictionary building --- MediaBrowser.Controller/Entities/BaseItem.cs | 21 +++++++++++++++++-- .../Movies/MovieExternalIds.cs | 8 +++++++ .../Dto/DtoService.cs | 18 +++++++++++++--- SharedVersion.cs | 4 ++-- 4 files changed, 44 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 41329608e4..abd6e42628 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -466,12 +466,29 @@ namespace MediaBrowser.Controller.Entities public Guid ParentId { get; set; } + private Folder _parent; /// /// Gets or sets the parent. /// /// The parent. - [IgnoreDataMember] - public Folder Parent { get; set; } + public Folder Parent + { + get + { + if (_parent != null) + { + return _parent; + } + + if (ParentId != Guid.Empty) + { + return LibraryManager.GetItemById(ParentId) as Folder; + } + + return null; + } + set { _parent = value; } + } public void SetParent(Folder parent) { diff --git a/MediaBrowser.Providers/Movies/MovieExternalIds.cs b/MediaBrowser.Providers/Movies/MovieExternalIds.cs index 9c09d9d00c..c582447a9f 100644 --- a/MediaBrowser.Providers/Movies/MovieExternalIds.cs +++ b/MediaBrowser.Providers/Movies/MovieExternalIds.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; +using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Entities; @@ -34,6 +35,13 @@ namespace MediaBrowser.Providers.Movies return true; } + // Supports images for tv movies + var tvProgram = item as LiveTvProgram; + if (tvProgram != null && tvProgram.IsMovie) + { + return true; + } + return item is Movie || item is MusicVideo; } } diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index bdc758d8e8..257e0feb1a 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -88,7 +88,7 @@ namespace MediaBrowser.Server.Implementations.Dto public IEnumerable GetBaseItemDtos(IEnumerable items, DtoOptions options, User user = null, BaseItem owner = null) { var syncJobItems = GetSyncedItemProgress(options); - var syncDictionary = syncJobItems.ToDictionary(i => i.ItemId); + var syncDictionary = GetSyncedItemProgressDictionary(syncJobItems); var list = new List(); @@ -120,11 +120,23 @@ namespace MediaBrowser.Server.Implementations.Dto return list; } + private Dictionary GetSyncedItemProgressDictionary(IEnumerable items) + { + var dict = new Dictionary(); + + foreach (var item in items) + { + dict[item.ItemId] = item; + } + + return dict; + } + public BaseItemDto GetBaseItemDto(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null) { var syncProgress = GetSyncedItemProgress(options); - var dto = GetBaseItemDtoInternal(item, options, syncProgress.ToDictionary(i => i.ItemId), user, owner); + var dto = GetBaseItemDtoInternal(item, options, GetSyncedItemProgressDictionary(syncProgress), user, owner); var byName = item as IItemByName; @@ -382,7 +394,7 @@ namespace MediaBrowser.Server.Implementations.Dto { var syncProgress = GetSyncedItemProgress(options); - var dto = GetBaseItemDtoInternal(item, options, syncProgress.ToDictionary(i => i.ItemId), user); + var dto = GetBaseItemDtoInternal(item, options, GetSyncedItemProgressDictionary(syncProgress), user); if (options.Fields.Contains(ItemFields.ItemCounts)) { diff --git a/SharedVersion.cs b/SharedVersion.cs index 3235e07e44..19b1c89596 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,4 +1,4 @@ using System.Reflection; -//[assembly: AssemblyVersion("3.0.*")] -[assembly: AssemblyVersion("3.0.5667.6")] +[assembly: AssemblyVersion("3.0.*")] +//[assembly: AssemblyVersion("3.0.5667.6")]