浏览代码

update dto dictionary building

Luke Pulverenti 10 年之前
父节点
当前提交
365a992736

+ 19 - 2
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -466,12 +466,29 @@ namespace MediaBrowser.Controller.Entities
 
         public Guid ParentId { get; set; }
 
+        private Folder _parent;
         /// <summary>
         /// Gets or sets the parent.
         /// </summary>
         /// <value>The parent.</value>
-        [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)
         {

+ 8 - 0
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;
         }
     }

+ 15 - 3
MediaBrowser.Server.Implementations/Dto/DtoService.cs

@@ -88,7 +88,7 @@ namespace MediaBrowser.Server.Implementations.Dto
         public IEnumerable<BaseItemDto> GetBaseItemDtos(IEnumerable<BaseItem> 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<BaseItemDto>();
 
@@ -120,11 +120,23 @@ namespace MediaBrowser.Server.Implementations.Dto
             return list;
         }
 
+        private Dictionary<string, SyncedItemProgress> GetSyncedItemProgressDictionary(IEnumerable<SyncedItemProgress> items)
+        {
+            var dict = new Dictionary<string, SyncedItemProgress>();
+
+            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))
             {

+ 2 - 2
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")]