Browse Source

Apply review suggestion

Shadowghost 1 year ago
parent
commit
dc93cc13b5

+ 7 - 9
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -214,16 +214,14 @@ namespace MediaBrowser.Controller.Entities.TV
 
         public Dictionary<int, string> GetSeasonNames()
         {
-            if (_seasonNames.Count == 0)
-            {
-                var childSeasons = Children.OfType<Season>()
-                    .Where(s => s.IndexNumber.HasValue)
-                    .DistinctBy(s => s.IndexNumber);
+            var newSeasons = Children.OfType<Season>()
+                .Where(s => s.IndexNumber.HasValue)
+                .Where(s => !_seasonNames.ContainsKey(s.IndexNumber.Value))
+                .DistinctBy(s => s.IndexNumber);
 
-                foreach (var season in childSeasons)
-                {
-                    _seasonNames[season.IndexNumber.Value] = season.Name;
-                }
+            foreach (var season in newSeasons)
+            {
+                SetSeasonName(season.IndexNumber.Value, season.Name);
             }
 
             return _seasonNames;

+ 10 - 5
MediaBrowser.Providers/TV/SeriesMetadataService.cs

@@ -91,14 +91,19 @@ namespace MediaBrowser.Providers.TV
             var sourceSeasonNames = sourceItem.GetSeasonNames();
             var targetSeasonNames = targetItem.GetSeasonNames();
 
-            if (replaceData
-                || targetSeasonNames.Count == 0
-                || targetSeasonNames.Count != sourceSeasonNames.Count
-                || !sourceSeasonNames.Keys.All(targetSeasonNames.ContainsKey))
+            if (replaceData)
             {
                 foreach (var (number, name) in sourceSeasonNames)
                 {
-                    target.Item.SetSeasonName(number, name);
+                    targetItem.SetSeasonName(number, name);
+                }
+            }
+            else if (!sourceSeasonNames.Keys.All(targetSeasonNames.ContainsKey))
+            {
+                var newSeasons = sourceSeasonNames.Where(s => !targetSeasonNames.ContainsKey(s.Key));
+                foreach (var (number, name) in newSeasons)
+                {
+                    targetItem.SetSeasonName(number, name);
                 }
             }