Browse Source

fix slow episode responses

Luke Pulverenti 8 years ago
parent
commit
916bda6f32

+ 23 - 21
MediaBrowser.Controller/Entities/TV/Episode.cs

@@ -135,7 +135,10 @@ namespace MediaBrowser.Controller.Entities.TV
         [IgnoreDataMember]
         public Series Series
         {
-            get { return FindParent<Series>(); }
+            get
+            {
+                return SeriesId.HasValue ? (LibraryManager.GetItemById(SeriesId.Value) as Series) : null;
+            }
         }
 
         [IgnoreDataMember]
@@ -143,24 +146,7 @@ namespace MediaBrowser.Controller.Entities.TV
         {
             get
             {
-                var season = FindParent<Season>();
-
-                // Episodes directly in series folder
-                if (season == null)
-                {
-                    var series = Series;
-
-                    if (series != null && ParentIndexNumber.HasValue)
-                    {
-                        var findNumber = ParentIndexNumber.Value;
-
-                        season = series.Children
-                            .OfType<Season>()
-                            .FirstOrDefault(i => i.IndexNumber.HasValue && i.IndexNumber.Value == findNumber);
-                    }
-                }
-
-                return season;
+                return SeasonId.HasValue ? (LibraryManager.GetItemById(SeasonId.Value) as Season) : null;
             }
         }
 
@@ -193,7 +179,23 @@ namespace MediaBrowser.Controller.Entities.TV
 
         public Guid? FindSeasonId()
         {
-            var season = Season;
+            var season = FindParent<Season>();
+
+            // Episodes directly in series folder
+            if (season == null)
+            {
+                var series = Series;
+
+                if (series != null && ParentIndexNumber.HasValue)
+                {
+                    var findNumber = ParentIndexNumber.Value;
+
+                    season = series.Children
+                        .OfType<Season>()
+                        .FirstOrDefault(i => i.IndexNumber.HasValue && i.IndexNumber.Value == findNumber);
+                }
+            }
+
             return season == null ? (Guid?)null : season.Id;
         }
 
@@ -263,7 +265,7 @@ namespace MediaBrowser.Controller.Entities.TV
 
         public Guid? FindSeriesId()
         {
-            var series = Series;
+            var series = FindParent<Series>();
             return series == null ? (Guid?)null : series.Id;
         }
 

+ 5 - 2
MediaBrowser.Controller/Entities/TV/Season.cs

@@ -99,7 +99,10 @@ namespace MediaBrowser.Controller.Entities.TV
         [IgnoreDataMember]
         public Series Series
         {
-            get { return FindParent<Series>(); }
+            get
+            {
+                return SeriesId.HasValue ? (LibraryManager.GetItemById(SeriesId.Value) as Series) : null;
+            }
         }
 
         [IgnoreDataMember]
@@ -241,7 +244,7 @@ namespace MediaBrowser.Controller.Entities.TV
 
         public Guid? FindSeriesId()
         {
-            var series = Series;
+            var series = FindParent<Series>();
             return series == null ? (Guid?)null : series.Id;
         }