Explorar o código

Add ExtraType.Unknown enum value and use it instead of null

Mark Monteiro %!s(int64=5) %!d(string=hai) anos
pai
achega
cc8294842a

+ 1 - 1
Emby.Server.Implementations/Dto/DtoService.cs

@@ -1057,7 +1057,7 @@ namespace Emby.Server.Implementations.Dto
             if (options.ContainsField(ItemFields.SpecialFeatureCount))
             {
                 allExtras = item.GetExtras().ToArray();
-                dto.SpecialFeatureCount = allExtras.Count(i => BaseItem.DisplayExtraTypes.Contains(i.ExtraType));
+                dto.SpecialFeatureCount = allExtras.Count(i => i.ExtraType.HasValue && BaseItem.DisplayExtraTypes.Contains(i.ExtraType.Value));
             }
 
             if (options.ContainsField(ItemFields.LocalTrailerCount))

+ 1 - 1
MediaBrowser.Api/UserLibrary/UserLibraryService.cs

@@ -381,7 +381,7 @@ namespace MediaBrowser.Api.UserLibrary
 
             var dtoOptions = GetDtoOptions(_authContext, request);
 
-            var dtosExtras = item.GetExtras(new ExtraType?[] { ExtraType.Trailer })
+            var dtosExtras = item.GetExtras(new ExtraType[] { ExtraType.Trailer })
                 .Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item))
                 .ToArray();
 

+ 5 - 6
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -1329,7 +1329,7 @@ namespace MediaBrowser.Controller.Entities
                         // Use some hackery to get the extra type based on foldername
                         item.ExtraType = Enum.TryParse(extraFolderName.Replace(" ", ""), true, out ExtraType extraType)
                             ? extraType
-                            : (ExtraType?)null;
+                            : Model.Entities.ExtraType.Unknown;
 
                         return item;
 
@@ -2896,12 +2896,12 @@ namespace MediaBrowser.Controller.Entities
         /// </summary>
         /// <param name="extraTypes">The types of extras to retrieve.</param>
         /// <returns>An enumerable containing the extras.</returns>
-        public IEnumerable<BaseItem> GetExtras(IReadOnlyCollection<ExtraType?> extraTypes)
+        public IEnumerable<BaseItem> GetExtras(IReadOnlyCollection<ExtraType> extraTypes)
         {
             return ExtraIds
                 .Select(LibraryManager.GetItemById)
                 .Where(i => i != null)
-                .Where(i => extraTypes.Contains(i.ExtraType));
+                .Where(i => i.ExtraType.HasValue && extraTypes.Contains(i.ExtraType.Value));
         }
 
         public IEnumerable<BaseItem> GetTrailers()
@@ -2932,10 +2932,9 @@ namespace MediaBrowser.Controller.Entities
         /// <summary>
         /// Extra types that should be counted and displayed as "Special Features" in the UI.
         /// </summary>
-        public static readonly IReadOnlyCollection<ExtraType?> DisplayExtraTypes = new HashSet<ExtraType?>
+        public static readonly IReadOnlyCollection<ExtraType> DisplayExtraTypes = new HashSet<ExtraType>
         {
-            null,
-            0,
+            Model.Entities.ExtraType.Unknown,
             Model.Entities.ExtraType.BehindTheScenes,
             Model.Entities.ExtraType.Clip,
             Model.Entities.ExtraType.DeletedScene,

+ 1 - 0
MediaBrowser.Model/Entities/ExtraType.cs

@@ -4,6 +4,7 @@ namespace MediaBrowser.Model.Entities
 {
     public enum ExtraType
     {
+        Unknown = 0,
         Clip = 1,
         Trailer = 2,
         BehindTheScenes = 3,