Prechádzať zdrojové kódy

Replace == null with is null

Bond_009 2 rokov pred
rodič
commit
c7d50d640e
100 zmenil súbory, kde vykonal 362 pridanie a 362 odobranie
  1. 10 10
      Emby.Dlna/Didl/DidlBuilder.cs
  2. 4 4
      Emby.Dlna/DlnaManager.cs
  3. 1 1
      Emby.Dlna/Main/DlnaEntryPoint.cs
  4. 47 47
      Emby.Dlna/PlayTo/Device.cs
  5. 4 4
      Emby.Dlna/PlayTo/PlayToController.cs
  6. 2 2
      Emby.Dlna/PlayTo/PlayToManager.cs
  7. 3 3
      Emby.Dlna/Ssdp/DeviceDiscovery.cs
  8. 1 1
      Emby.Drawing/ImageProcessor.cs
  9. 1 1
      Emby.Naming/AudioBook/AudioBookListResolver.cs
  10. 1 1
      Emby.Naming/AudioBook/AudioBookNameParser.cs
  11. 1 1
      Emby.Naming/ExternalFiles/ExternalPathParser.cs
  12. 2 2
      Emby.Naming/Video/VideoListResolver.cs
  13. 1 1
      Emby.Naming/Video/VideoResolver.cs
  14. 1 1
      Emby.Notifications/NotificationEntryPoint.cs
  15. 1 1
      Emby.Notifications/NotificationManager.cs
  16. 2 2
      Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs
  17. 1 1
      Emby.Server.Implementations/AppBase/ConfigurationHelper.cs
  18. 8 8
      Emby.Server.Implementations/Channels/ChannelManager.cs
  19. 4 4
      Emby.Server.Implementations/Collections/CollectionManager.cs
  20. 1 1
      Emby.Server.Implementations/Data/SqliteExtensions.cs
  21. 9 9
      Emby.Server.Implementations/Data/SqliteItemRepository.cs
  22. 8 8
      Emby.Server.Implementations/Dto/DtoService.cs
  23. 3 3
      Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs
  24. 1 1
      Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs
  25. 2 2
      Emby.Server.Implementations/HttpServer/WebSocketConnection.cs
  26. 3 3
      Emby.Server.Implementations/IO/FileRefresher.cs
  27. 23 23
      Emby.Server.Implementations/Library/LibraryManager.cs
  28. 2 2
      Emby.Server.Implementations/Library/LiveStreamHelper.cs
  29. 7 7
      Emby.Server.Implementations/Library/MediaSourceManager.cs
  30. 1 1
      Emby.Server.Implementations/Library/ResolverHelper.cs
  31. 2 2
      Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs
  32. 2 2
      Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs
  33. 1 1
      Emby.Server.Implementations/Library/Resolvers/ExtraResolver.cs
  34. 1 1
      Emby.Server.Implementations/Library/Resolvers/GenericFolderResolver.cs
  35. 4 4
      Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
  36. 3 3
      Emby.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
  37. 2 2
      Emby.Server.Implementations/Library/UserViewManager.cs
  38. 1 1
      Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs
  39. 11 11
      Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
  40. 1 1
      Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs
  41. 6 6
      Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs
  42. 1 1
      Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs
  43. 4 4
      Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs
  44. 11 11
      Emby.Server.Implementations/LiveTv/LiveTvManager.cs
  45. 1 1
      Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
  46. 2 2
      Emby.Server.Implementations/Localization/LocalizationManager.cs
  47. 2 2
      Emby.Server.Implementations/Playlists/PlaylistManager.cs
  48. 1 1
      Emby.Server.Implementations/Playlists/PlaylistsFolder.cs
  49. 5 5
      Emby.Server.Implementations/Plugins/PluginManager.cs
  50. 1 1
      Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs
  51. 3 3
      Emby.Server.Implementations/ScheduledTasks/TaskManager.cs
  52. 1 1
      Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs
  53. 16 16
      Emby.Server.Implementations/Session/SessionManager.cs
  54. 1 1
      Emby.Server.Implementations/Session/SessionWebSocketListener.cs
  55. 1 1
      Emby.Server.Implementations/Session/WebSocketController.cs
  56. 3 3
      Emby.Server.Implementations/Sorting/AiredEpisodeOrderComparer.cs
  57. 1 1
      Emby.Server.Implementations/Sorting/PlayCountComparer.cs
  58. 1 1
      Emby.Server.Implementations/Sorting/PremiereDateComparer.cs
  59. 1 1
      Emby.Server.Implementations/Sorting/ProductionYearComparer.cs
  60. 2 2
      Emby.Server.Implementations/SyncPlay/Group.cs
  61. 11 11
      Emby.Server.Implementations/SyncPlay/SyncPlayManager.cs
  62. 2 2
      Emby.Server.Implementations/TV/TVSeriesManager.cs
  63. 4 4
      Emby.Server.Implementations/Updates/InstallationManager.cs
  64. 1 1
      Jellyfin.Api/Auth/AnonymousLanAccessPolicy/AnonymousLanAccessHandler.cs
  65. 1 1
      Jellyfin.Api/Auth/BaseAuthorizationHandler.cs
  66. 1 1
      Jellyfin.Api/Controllers/ConfigurationController.cs
  67. 2 2
      Jellyfin.Api/Controllers/DashboardController.cs
  68. 3 3
      Jellyfin.Api/Controllers/DevicesController.cs
  69. 3 3
      Jellyfin.Api/Controllers/DlnaController.cs
  70. 1 1
      Jellyfin.Api/Controllers/DlnaServerController.cs
  71. 5 5
      Jellyfin.Api/Controllers/DynamicHlsController.cs
  72. 1 1
      Jellyfin.Api/Controllers/EnvironmentController.cs
  73. 1 1
      Jellyfin.Api/Controllers/FilterController.cs
  74. 1 1
      Jellyfin.Api/Controllers/HlsSegmentController.cs
  75. 1 1
      Jellyfin.Api/Controllers/ImageByNameController.cs
  76. 24 24
      Jellyfin.Api/Controllers/ImageController.cs
  77. 1 1
      Jellyfin.Api/Controllers/ItemLookupController.cs
  78. 1 1
      Jellyfin.Api/Controllers/ItemRefreshController.cs
  79. 2 2
      Jellyfin.Api/Controllers/ItemUpdateController.cs
  80. 7 7
      Jellyfin.Api/Controllers/LibraryController.cs
  81. 3 3
      Jellyfin.Api/Controllers/LiveTvController.cs
  82. 1 1
      Jellyfin.Api/Controllers/MediaInfoController.cs
  83. 2 2
      Jellyfin.Api/Controllers/PackageController.cs
  84. 1 1
      Jellyfin.Api/Controllers/PersonsController.cs
  85. 1 1
      Jellyfin.Api/Controllers/PlaylistsController.cs
  86. 1 1
      Jellyfin.Api/Controllers/PlaystateController.cs
  87. 6 6
      Jellyfin.Api/Controllers/PluginsController.cs
  88. 3 3
      Jellyfin.Api/Controllers/RemoteImageController.cs
  89. 4 4
      Jellyfin.Api/Controllers/ScheduledTasksController.cs
  90. 1 1
      Jellyfin.Api/Controllers/SearchController.cs
  91. 1 1
      Jellyfin.Api/Controllers/SessionController.cs
  92. 1 1
      Jellyfin.Api/Controllers/SubtitleController.cs
  93. 1 1
      Jellyfin.Api/Controllers/TvShowsController.cs
  94. 6 6
      Jellyfin.Api/Controllers/UserController.cs
  95. 2 2
      Jellyfin.Api/Controllers/UserLibraryController.cs
  96. 1 1
      Jellyfin.Api/Controllers/UserViewsController.cs
  97. 1 1
      Jellyfin.Api/Controllers/VideoAttachmentsController.cs
  98. 3 3
      Jellyfin.Api/Controllers/VideosController.cs
  99. 1 1
      Jellyfin.Api/Controllers/YearsController.cs
  100. 2 2
      Jellyfin.Api/Helpers/AudioHelper.cs

+ 10 - 10
Emby.Dlna/Didl/DidlBuilder.cs

@@ -191,7 +191,7 @@ namespace Emby.Dlna.Didl
 
         private void AddVideoResource(XmlWriter writer, BaseItem video, string deviceId, Filter filter, StreamInfo streamInfo = null)
         {
-            if (streamInfo == null)
+            if (streamInfo is null)
             {
                 var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user);
 
@@ -263,7 +263,7 @@ namespace Emby.Dlna.Didl
                 .FirstOrDefault(i => string.Equals(info.Format, i.Format, StringComparison.OrdinalIgnoreCase)
                                     && i.Method == SubtitleDeliveryMethod.External);
 
-            if (subtitleProfile == null)
+            if (subtitleProfile is null)
             {
                 return false;
             }
@@ -392,7 +392,7 @@ namespace Emby.Dlna.Didl
 
             var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
 
-            var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
+            var mimeType = mediaProfile is null || string.IsNullOrEmpty(mediaProfile.MimeType)
                ? MimeTypes.GetMimeType(filename)
                : mediaProfile.MimeType;
 
@@ -533,7 +533,7 @@ namespace Emby.Dlna.Didl
         {
             writer.WriteStartElement(string.Empty, "res", NsDidl);
 
-            if (streamInfo == null)
+            if (streamInfo is null)
             {
                 var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user);
 
@@ -598,7 +598,7 @@ namespace Emby.Dlna.Didl
 
             var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
 
-            var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
+            var mimeType = mediaProfile is null || string.IsNullOrEmpty(mediaProfile.MimeType)
                 ? MimeTypes.GetMimeType(filename)
                 : mediaProfile.MimeType;
 
@@ -695,7 +695,7 @@ namespace Emby.Dlna.Didl
             }
 
             // Not a samsung device
-            if (secAttribute == null)
+            if (secAttribute is null)
             {
                 return;
             }
@@ -909,7 +909,7 @@ namespace Emby.Dlna.Didl
                     AddValue(writer, "dc", "creator", artist, NsDc);
 
                     // If it doesn't support album artists (musicvideo), then tag as both
-                    if (hasAlbumArtists == null)
+                    if (hasAlbumArtists is null)
                     {
                         AddAlbumArtist(writer, artist);
                     }
@@ -973,7 +973,7 @@ namespace Emby.Dlna.Didl
         {
             ImageDownloadInfo imageInfo = GetImageInfo(item);
 
-            if (imageInfo == null)
+            if (imageInfo is null)
             {
                 return;
             }
@@ -1036,7 +1036,7 @@ namespace Emby.Dlna.Didl
         {
             var imageInfo = GetImageInfo(item);
 
-            if (imageInfo == null)
+            if (imageInfo is null)
             {
                 return;
             }
@@ -1116,7 +1116,7 @@ namespace Emby.Dlna.Didl
 
         private BaseItem GetFirstParentWithImageBelowUserRoot(BaseItem item)
         {
-            if (item == null)
+            if (item is null)
             {
                 return null;
             }

+ 4 - 4
Emby.Dlna/DlnaManager.cs

@@ -107,7 +107,7 @@ namespace Emby.Dlna
             var profile = GetProfiles()
                 .FirstOrDefault(i => i.Identification != null && IsMatch(deviceInfo, i.Identification));
 
-            if (profile == null)
+            if (profile is null)
             {
                 _logger.LogInformation("No matching device profile found. The default will need to be used. \n{@Profile}", deviceInfo);
             }
@@ -172,7 +172,7 @@ namespace Emby.Dlna
             ArgumentNullException.ThrowIfNull(headers);
 
             var profile = GetProfiles().FirstOrDefault(i => i.Identification != null && IsMatch(headers, i.Identification));
-            if (profile == null)
+            if (profile is null)
             {
                 _logger.LogDebug("No matching device profile found. {@Headers}", headers);
             }
@@ -272,7 +272,7 @@ namespace Emby.Dlna
 
             var info = GetProfileInfosInternal().FirstOrDefault(i => string.Equals(i.Info.Id, id, StringComparison.OrdinalIgnoreCase));
 
-            if (info == null)
+            if (info is null)
             {
                 return null;
             }
@@ -470,7 +470,7 @@ namespace Emby.Dlna
 
             var resource = GetType().Namespace + ".Images." + filename.ToLowerInvariant();
             var stream = _assembly.GetManifestResourceStream(resource);
-            if (stream == null)
+            if (stream is null)
             {
                 return null;
             }

+ 1 - 1
Emby.Dlna/Main/DlnaEntryPoint.cs

@@ -199,7 +199,7 @@ namespace Emby.Dlna.Main
         {
             try
             {
-                if (_communicationsServer == null)
+                if (_communicationsServer is null)
                 {
                     var enableMultiSocketBinding = OperatingSystem.IsWindows() ||
                                                    OperatingSystem.IsLinux();

+ 47 - 47
Emby.Dlna/PlayTo/Device.cs

@@ -220,14 +220,14 @@ namespace Emby.Dlna.PlayTo
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetMute");
-            if (command == null)
+            if (command is null)
             {
                 return false;
             }
 
             var service = GetServiceRenderingControl();
 
-            if (service == null)
+            if (service is null)
             {
                 return false;
             }
@@ -260,14 +260,14 @@ namespace Emby.Dlna.PlayTo
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetVolume");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
 
             var service = GetServiceRenderingControl();
 
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
@@ -291,14 +291,14 @@ namespace Emby.Dlna.PlayTo
             var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Seek");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
 
             var service = GetAvTransportService();
 
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
@@ -324,7 +324,7 @@ namespace Emby.Dlna.PlayTo
             _logger.LogDebug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", Properties.Name, url, header);
 
             var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
@@ -337,7 +337,7 @@ namespace Emby.Dlna.PlayTo
 
             var service = GetAvTransportService();
 
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
@@ -381,7 +381,7 @@ namespace Emby.Dlna.PlayTo
             _logger.LogDebug("{PropertyName} - SetNextAvTransport Uri: {Url} DlnaHeaders: {Header}", Properties.Name, url, header);
 
             var command = avCommands.ServiceActions.FirstOrDefault(c => string.Equals(c.Name, "SetNextAVTransportURI", StringComparison.OrdinalIgnoreCase));
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
@@ -394,7 +394,7 @@ namespace Emby.Dlna.PlayTo
 
             var service = GetAvTransportService();
 
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
@@ -418,13 +418,13 @@ namespace Emby.Dlna.PlayTo
         private Task SetPlay(TransportCommands avCommands, CancellationToken cancellationToken)
         {
             var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Play");
-            if (command == null)
+            if (command is null)
             {
                 return Task.CompletedTask;
             }
 
             var service = GetAvTransportService();
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
@@ -440,7 +440,7 @@ namespace Emby.Dlna.PlayTo
         public async Task SetPlay(CancellationToken cancellationToken)
         {
             var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
-            if (avCommands == null)
+            if (avCommands is null)
             {
                 return;
             }
@@ -455,7 +455,7 @@ namespace Emby.Dlna.PlayTo
             var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Stop");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
@@ -479,7 +479,7 @@ namespace Emby.Dlna.PlayTo
             var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = avCommands?.ServiceActions.FirstOrDefault(c => c.Name == "Pause");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
@@ -513,7 +513,7 @@ namespace Emby.Dlna.PlayTo
 
                 var avCommands = await GetAVProtocolAsync(cancellationToken).ConfigureAwait(false);
 
-                if (avCommands == null)
+                if (avCommands is null)
                 {
                     return;
                 }
@@ -538,7 +538,7 @@ namespace Emby.Dlna.PlayTo
 
                         var currentObject = tuple.Track;
 
-                        if (tuple.Success && currentObject == null)
+                        if (tuple.Success && currentObject is null)
                         {
                             currentObject = await GetMediaInfo(avCommands, cancellationToken).ConfigureAwait(false);
                         }
@@ -607,14 +607,14 @@ namespace Emby.Dlna.PlayTo
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetVolume");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
 
             var service = GetServiceRenderingControl();
 
-            if (service == null)
+            if (service is null)
             {
                 return;
             }
@@ -626,7 +626,7 @@ namespace Emby.Dlna.PlayTo
                 rendererCommands.BuildPost(command, service.ServiceType),
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
-            if (result == null || result.Document == null)
+            if (result is null || result.Document is null)
             {
                 return;
             }
@@ -657,14 +657,14 @@ namespace Emby.Dlna.PlayTo
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
 
             var command = rendererCommands?.ServiceActions.FirstOrDefault(c => c.Name == "GetMute");
-            if (command == null)
+            if (command is null)
             {
                 return;
             }
 
             var service = GetServiceRenderingControl();
 
-            if (service == null)
+            if (service is null)
             {
                 return;
             }
@@ -676,7 +676,7 @@ namespace Emby.Dlna.PlayTo
                 rendererCommands.BuildPost(command, service.ServiceType),
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
-            if (result == null || result.Document == null)
+            if (result is null || result.Document is null)
             {
                 return;
             }
@@ -691,13 +691,13 @@ namespace Emby.Dlna.PlayTo
         private async Task<TransportState?> GetTransportInfo(TransportCommands avCommands, CancellationToken cancellationToken)
         {
             var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetTransportInfo");
-            if (command == null)
+            if (command is null)
             {
                 return null;
             }
 
             var service = GetAvTransportService();
-            if (service == null)
+            if (service is null)
             {
                 return null;
             }
@@ -709,7 +709,7 @@ namespace Emby.Dlna.PlayTo
                 avCommands.BuildPost(command, service.ServiceType),
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
-            if (result == null || result.Document == null)
+            if (result is null || result.Document is null)
             {
                 return null;
             }
@@ -731,19 +731,19 @@ namespace Emby.Dlna.PlayTo
         private async Task<UBaseObject> GetMediaInfo(TransportCommands avCommands, CancellationToken cancellationToken)
         {
             var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetMediaInfo");
-            if (command == null)
+            if (command is null)
             {
                 return null;
             }
 
             var service = GetAvTransportService();
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
 
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
-            if (rendererCommands == null)
+            if (rendererCommands is null)
             {
                 return null;
             }
@@ -755,14 +755,14 @@ namespace Emby.Dlna.PlayTo
                 rendererCommands.BuildPost(command, service.ServiceType),
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
-            if (result == null || result.Document == null)
+            if (result is null || result.Document is null)
             {
                 return null;
             }
 
             var track = result.Document.Descendants("CurrentURIMetaData").FirstOrDefault();
 
-            if (track == null)
+            if (track is null)
             {
                 return null;
             }
@@ -778,7 +778,7 @@ namespace Emby.Dlna.PlayTo
 
             track = result.Document.Descendants("CurrentURI").FirstOrDefault();
 
-            if (track == null)
+            if (track is null)
             {
                 return null;
             }
@@ -801,21 +801,21 @@ namespace Emby.Dlna.PlayTo
         private async Task<(bool Success, UBaseObject Track)> GetPositionInfo(TransportCommands avCommands, CancellationToken cancellationToken)
         {
             var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "GetPositionInfo");
-            if (command == null)
+            if (command is null)
             {
                 return (false, null);
             }
 
             var service = GetAvTransportService();
 
-            if (service == null)
+            if (service is null)
             {
                 throw new InvalidOperationException("Unable to find service");
             }
 
             var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
 
-            if (rendererCommands == null)
+            if (rendererCommands is null)
             {
                 return (false, null);
             }
@@ -827,7 +827,7 @@ namespace Emby.Dlna.PlayTo
                 rendererCommands.BuildPost(command, service.ServiceType),
                 cancellationToken: cancellationToken).ConfigureAwait(false);
 
-            if (result == null || result.Document == null)
+            if (result is null || result.Document is null)
             {
                 return (false, null);
             }
@@ -858,7 +858,7 @@ namespace Emby.Dlna.PlayTo
 
             var track = result.Document.Descendants("TrackMetaData").FirstOrDefault();
 
-            if (track == null)
+            if (track is null)
             {
                 // If track is null, some vendors do this, use GetMediaInfo instead.
                 return (true, null);
@@ -882,7 +882,7 @@ namespace Emby.Dlna.PlayTo
                 _logger.LogError(ex, "Uncaught exception while parsing xml");
             }
 
-            if (uPnpResponse == null)
+            if (uPnpResponse is null)
             {
                 _logger.LogError("Failed to parse xml: \n {Xml}", trackString);
                 return (true, null);
@@ -985,7 +985,7 @@ namespace Emby.Dlna.PlayTo
             }
 
             var avService = GetAvTransportService();
-            if (avService == null)
+            if (avService is null)
             {
                 return null;
             }
@@ -995,7 +995,7 @@ namespace Emby.Dlna.PlayTo
             var httpClient = new DlnaHttpClient(_logger, _httpClientFactory);
 
             var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
-            if (document == null)
+            if (document is null)
             {
                 return null;
             }
@@ -1017,7 +1017,7 @@ namespace Emby.Dlna.PlayTo
             }
 
             var avService = GetServiceRenderingControl();
-            if (avService == null)
+            if (avService is null)
             {
                 throw new ArgumentException("Device AvService is null");
             }
@@ -1027,7 +1027,7 @@ namespace Emby.Dlna.PlayTo
             var httpClient = new DlnaHttpClient(_logger, _httpClientFactory);
             _logger.LogDebug("Dlna Device.GetRenderingProtocolAsync");
             var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
-            if (document == null)
+            if (document is null)
             {
                 return null;
             }
@@ -1062,7 +1062,7 @@ namespace Emby.Dlna.PlayTo
             var ssdpHttpClient = new DlnaHttpClient(logger, httpClientFactory);
 
             var document = await ssdpHttpClient.GetDataAsync(url.ToString(), cancellationToken).ConfigureAwait(false);
-            if (document == null)
+            if (document is null)
             {
                 return null;
             }
@@ -1149,13 +1149,13 @@ namespace Emby.Dlna.PlayTo
 
             foreach (var services in document.Descendants(UPnpNamespaces.Ud.GetName("serviceList")))
             {
-                if (services == null)
+                if (services is null)
                 {
                     continue;
                 }
 
                 var servicesList = services.Descendants(UPnpNamespaces.Ud.GetName("service"));
-                if (servicesList == null)
+                if (servicesList is null)
                 {
                     continue;
                 }
@@ -1212,14 +1212,14 @@ namespace Emby.Dlna.PlayTo
             var previousMediaInfo = CurrentMediaInfo;
             CurrentMediaInfo = mediaInfo;
 
-            if (mediaInfo == null)
+            if (mediaInfo is null)
             {
                 if (previousMediaInfo != null)
                 {
                     OnPlaybackStop(previousMediaInfo);
                 }
             }
-            else if (previousMediaInfo == null)
+            else if (previousMediaInfo is null)
             {
                 if (state != TransportState.STOPPED)
                 {

+ 4 - 4
Emby.Dlna/PlayTo/PlayToController.cs

@@ -164,7 +164,7 @@ namespace Emby.Dlna.PlayTo
                 }
 
                 streamInfo = StreamParams.ParseFromUrl(e.NewMediaInfo.Url, _libraryManager, _mediaSourceManager);
-                if (streamInfo.Item == null)
+                if (streamInfo.Item is null)
                 {
                     return;
                 }
@@ -199,7 +199,7 @@ namespace Emby.Dlna.PlayTo
             {
                 var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager, _mediaSourceManager);
 
-                if (streamInfo.Item == null)
+                if (streamInfo.Item is null)
                 {
                     return;
                 }
@@ -210,7 +210,7 @@ namespace Emby.Dlna.PlayTo
 
                 var mediaSource = await streamInfo.GetMediaSource(CancellationToken.None).ConfigureAwait(false);
 
-                var duration = mediaSource == null
+                var duration = mediaSource is null
                     ? _device.Duration?.Ticks
                     : mediaSource.RunTimeTicks;
 
@@ -865,7 +865,7 @@ namespace Emby.Dlna.PlayTo
                 throw new ObjectDisposedException(GetType().Name);
             }
 
-            if (_device == null)
+            if (_device is null)
             {
                 return Task.CompletedTask;
             }

+ 2 - 2
Emby.Dlna/PlayTo/PlayToManager.cs

@@ -176,10 +176,10 @@ namespace Emby.Dlna.PlayTo
 
             var controller = sessionInfo.SessionControllers.OfType<PlayToController>().FirstOrDefault();
 
-            if (controller == null)
+            if (controller is null)
             {
                 var device = await Device.CreateuPnpDeviceAsync(uri, _httpClientFactory, _logger, cancellationToken).ConfigureAwait(false);
-                if (device == null)
+                if (device is null)
                 {
                     _logger.LogError("Ignoring device as xml response is invalid.");
                     return;

+ 3 - 3
Emby.Dlna/Ssdp/DeviceDiscovery.cs

@@ -71,7 +71,7 @@ namespace Emby.Dlna.Ssdp
         {
             lock (_syncLock)
             {
-                if (_listenerCount > 0 && _deviceLocator == null && _commsServer != null)
+                if (_listenerCount > 0 && _deviceLocator is null && _commsServer != null)
                 {
                     _deviceLocator = new SsdpDeviceLocator(_commsServer);
 
@@ -97,7 +97,7 @@ namespace Emby.Dlna.Ssdp
         {
             var originalHeaders = e.DiscoveredDevice.ResponseHeaders;
 
-            var headerDict = originalHeaders == null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
+            var headerDict = originalHeaders is null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
 
             var headers = headerDict.ToDictionary(i => i.Key, i => i.Value.Value.FirstOrDefault(), StringComparer.OrdinalIgnoreCase);
 
@@ -116,7 +116,7 @@ namespace Emby.Dlna.Ssdp
         {
             var originalHeaders = e.DiscoveredDevice.ResponseHeaders;
 
-            var headerDict = originalHeaders == null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
+            var headerDict = originalHeaders is null ? new Dictionary<string, KeyValuePair<string, IEnumerable<string>>>() : originalHeaders.ToDictionary(i => i.Key, StringComparer.OrdinalIgnoreCase);
 
             var headers = headerDict.ToDictionary(i => i.Key, i => i.Value.Value.FirstOrDefault(), StringComparer.OrdinalIgnoreCase);
 

+ 1 - 1
Emby.Drawing/ImageProcessor.cs

@@ -436,7 +436,7 @@ namespace Emby.Drawing
         /// <inheritdoc />
         public string? GetImageCacheTag(User user)
         {
-            if (user.ProfileImage == null)
+            if (user.ProfileImage is null)
             {
                 return null;
             }

+ 1 - 1
Emby.Naming/AudioBook/AudioBookListResolver.cs

@@ -75,7 +75,7 @@ namespace Emby.Naming.AudioBook
 
             foreach (var group in groupedBy)
             {
-                if (group.Key.ChapterNumber == null && group.Key.PartNumber == null)
+                if (group.Key.ChapterNumber is null && group.Key.PartNumber is null)
                 {
                     if (group.Count() > 1 || haveChaptersOrPages)
                     {

+ 1 - 1
Emby.Naming/AudioBook/AudioBookNameParser.cs

@@ -33,7 +33,7 @@ namespace Emby.Naming.AudioBook
                 var match = new Regex(expression, RegexOptions.IgnoreCase).Match(name);
                 if (match.Success)
                 {
-                    if (result.Name == null)
+                    if (result.Name is null)
                     {
                         var value = match.Groups["name"];
                         if (value.Success)

+ 1 - 1
Emby.Naming/ExternalFiles/ExternalPathParser.cs

@@ -94,7 +94,7 @@ namespace Emby.Naming.ExternalFiles
                     // Try to translate to three character code
                     var culture = _localizationManager.FindLanguageInfo(currentSliceWithoutSeparator);
 
-                    if (culture != null && pathInfo.Language == null)
+                    if (culture != null && pathInfo.Language is null)
                     {
                         pathInfo.Language = culture.ThreeLetterISOLanguageName;
                         extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);

+ 2 - 2
Emby.Naming/Video/VideoListResolver.cs

@@ -26,7 +26,7 @@ namespace Emby.Naming.Video
             // Filter out all extras, otherwise they could cause stacks to not be resolved
             // See the unit test TestStackedWithTrailer
             var nonExtras = videoInfos
-                .Where(i => i.ExtraType == null)
+                .Where(i => i.ExtraType is null)
                 .Select(i => new FileSystemMetadata { FullName = i.Path, IsDirectory = i.IsDirectory });
 
             var stackResult = StackResolver.Resolve(nonExtras, namingOptions).ToList();
@@ -42,7 +42,7 @@ namespace Emby.Naming.Video
                     continue;
                 }
 
-                if (current.ExtraType == null)
+                if (current.ExtraType is null)
                 {
                     standaloneMedia.Add(current);
                 }

+ 1 - 1
Emby.Naming/Video/VideoResolver.cs

@@ -87,7 +87,7 @@ namespace Emby.Naming.Video
                 name = cleanDateTimeResult.Name;
                 year = cleanDateTimeResult.Year;
 
-                if (extraResult.ExtraType == null
+                if (extraResult.ExtraType is null
                     && TryCleanString(name, namingOptions, out var newName))
                 {
                     name = newName;

+ 1 - 1
Emby.Notifications/NotificationEntryPoint.cs

@@ -141,7 +141,7 @@ namespace Emby.Notifications
 
             lock (_libraryChangedSyncLock)
             {
-                if (_libraryUpdateTimer == null)
+                if (_libraryUpdateTimer is null)
                 {
                     _libraryUpdateTimer = new Timer(
                         LibraryUpdateTimerCallback,

+ 1 - 1
Emby.Notifications/NotificationManager.cs

@@ -68,7 +68,7 @@ namespace Emby.Notifications
 
             var users = GetUserIds(request, options)
                 .Select(i => _userManager.GetUserById(i))
-                .Where(i => relatedItem == null || relatedItem.IsVisibleStandalone(i))
+                .Where(i => relatedItem is null || relatedItem.IsVisibleStandalone(i))
                 .ToArray();
 
             var title = request.Name;

+ 2 - 2
Emby.Server.Implementations/AppBase/BaseConfigurationManager.cs

@@ -144,7 +144,7 @@ namespace Emby.Server.Implementations.AppBase
         {
             IConfigurationFactory factory = Activator.CreateInstance<T>();
 
-            if (_configurationFactories == null)
+            if (_configurationFactories is null)
             {
                 _configurationFactories = new[] { factory };
             }
@@ -306,7 +306,7 @@ namespace Emby.Server.Implementations.AppBase
                         configurationManager._configurationStores,
                         i => string.Equals(i.Key, k, StringComparison.OrdinalIgnoreCase));
 
-                    if (configurationInfo == null)
+                    if (configurationInfo is null)
                     {
                         throw new ResourceNotFoundException("Configuration with key " + k + " not found.");
                     }

+ 1 - 1
Emby.Server.Implementations/AppBase/ConfigurationHelper.cs

@@ -43,7 +43,7 @@ namespace Emby.Server.Implementations.AppBase
             Span<byte> newBytes = stream.GetBuffer().AsSpan(0, (int)stream.Length);
 
             // If the file didn't exist before, or if something has changed, re-save
-            if (buffer == null || !newBytes.SequenceEqual(buffer))
+            if (buffer is null || !newBytes.SequenceEqual(buffer))
             {
                 var directory = Path.GetDirectoryName(path) ?? throw new ArgumentException($"Provided path ({path}) is not valid.", nameof(path));
 

+ 8 - 8
Emby.Server.Implementations/Channels/ChannelManager.cs

@@ -129,7 +129,7 @@ namespace Emby.Server.Implementations.Channels
         public Task DeleteItem(BaseItem item)
         {
             var internalChannel = _libraryManager.GetItemById(item.ChannelId);
-            if (internalChannel == null)
+            if (internalChannel is null)
             {
                 throw new ArgumentException(nameof(item.ChannelId));
             }
@@ -253,7 +253,7 @@ namespace Emby.Server.Implementations.Channels
             if (query.StartIndex.HasValue || query.Limit.HasValue)
             {
                 int startIndex = query.StartIndex ?? 0;
-                int count = query.Limit == null ? totalCount - startIndex : Math.Min(query.Limit.Value, totalCount - startIndex);
+                int count = query.Limit is null ? totalCount - startIndex : Math.Min(query.Limit.Value, totalCount - startIndex);
                 all = all.GetRange(startIndex, count);
             }
 
@@ -355,7 +355,7 @@ namespace Emby.Server.Implementations.Channels
         {
             var path = Path.Combine(item.GetInternalMetadataPath(), "channelmediasourceinfos.json");
 
-            if (mediaSources == null || mediaSources.Count == 0)
+            if (mediaSources is null || mediaSources.Count == 0)
             {
                 try
                 {
@@ -447,7 +447,7 @@ namespace Emby.Server.Implementations.Channels
 
             var item = _libraryManager.GetItemById(id) as Channel;
 
-            if (item == null)
+            if (item is null)
             {
                 item = new Channel
                 {
@@ -861,7 +861,7 @@ namespace Emby.Server.Implementations.Channels
 
                 var result = await channel.GetChannelItems(query, cancellationToken).ConfigureAwait(false);
 
-                if (result == null)
+                if (result is null)
                 {
                     throw new InvalidOperationException("Channel returned a null result from GetChannelItems");
                 }
@@ -955,7 +955,7 @@ namespace Emby.Server.Implementations.Channels
                 _logger.LogError(ex, "Error retrieving channel item from database");
             }
 
-            if (item == null)
+            if (item is null)
             {
                 item = new T();
                 isNew = true;
@@ -1193,7 +1193,7 @@ namespace Emby.Server.Implementations.Channels
             var result = GetAllChannels()
                 .FirstOrDefault(i => GetInternalChannelId(i.Name).Equals(channel.ChannelId) || string.Equals(i.Name, channel.Name, StringComparison.OrdinalIgnoreCase));
 
-            if (result == null)
+            if (result is null)
             {
                 throw new ResourceNotFoundException("No channel provider found for channel " + channel.Name);
             }
@@ -1206,7 +1206,7 @@ namespace Emby.Server.Implementations.Channels
             var result = GetAllChannels()
                 .FirstOrDefault(i => internalChannelId.Equals(GetInternalChannelId(i.Name)));
 
-            if (result == null)
+            if (result is null)
             {
                 throw new ResourceNotFoundException("No channel provider found for channel id " + internalChannelId);
             }

+ 4 - 4
Emby.Server.Implementations/Collections/CollectionManager.cs

@@ -121,7 +121,7 @@ namespace Emby.Server.Implementations.Collections
         {
             var folder = GetCollectionsFolder(false).GetAwaiter().GetResult();
 
-            return folder == null
+            return folder is null
                 ? Enumerable.Empty<BoxSet>()
                 : folder.GetChildren(user, true).OfType<BoxSet>();
         }
@@ -138,7 +138,7 @@ namespace Emby.Server.Implementations.Collections
 
             var parentFolder = await GetCollectionsFolder(true).ConfigureAwait(false);
 
-            if (parentFolder == null)
+            if (parentFolder is null)
             {
                 throw new ArgumentException(nameof(parentFolder));
             }
@@ -216,7 +216,7 @@ namespace Emby.Server.Implementations.Collections
             {
                 var item = _libraryManager.GetItemById(id);
 
-                if (item == null)
+                if (item is null)
                 {
                     throw new ArgumentException("No item exists with the supplied Id");
                 }
@@ -267,7 +267,7 @@ namespace Emby.Server.Implementations.Collections
 
                 var child = collection.LinkedChildren.FirstOrDefault(i => (i.ItemId.HasValue && i.ItemId.Value.Equals(guidId)) || (childItem != null && string.Equals(childItem.Path, i.Path, StringComparison.OrdinalIgnoreCase)));
 
-                if (child == null)
+                if (child is null)
                 {
                     _logger.LogWarning("No collection title exists with the supplied Id");
                     continue;

+ 1 - 1
Emby.Server.Implementations/Data/SqliteExtensions.cs

@@ -253,7 +253,7 @@ namespace Emby.Server.Implementations.Data
         {
             if (statement.BindParameters.TryGetValue(name, out IBindParameter bindParam))
             {
-                if (value == null)
+                if (value is null)
                 {
                     bindParam.BindNull();
                 }

+ 9 - 9
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -691,7 +691,7 @@ namespace Emby.Server.Implementations.Data
 
         private string GetPathToSave(string path)
         {
-            if (path == null)
+            if (path is null)
             {
                 return null;
             }
@@ -890,7 +890,7 @@ namespace Emby.Server.Implementations.Data
 
             saveItemStatement.TryBind("@UnratedType", item.GetBlockUnratedType().ToString());
 
-            if (topParent == null)
+            if (topParent is null)
             {
                 saveItemStatement.TryBindNull("@TopParentId");
             }
@@ -1414,7 +1414,7 @@ namespace Emby.Server.Implementations.Data
 
             var type = _typeMapper.GetType(typeString);
 
-            if (type == null)
+            if (type is null)
             {
                 return null;
             }
@@ -1433,7 +1433,7 @@ namespace Emby.Server.Implementations.Data
                 }
             }
 
-            if (item == null)
+            if (item is null)
             {
                 try
                 {
@@ -1444,7 +1444,7 @@ namespace Emby.Server.Implementations.Data
                 }
             }
 
-            if (item == null)
+            if (item is null)
             {
                 return null;
             }
@@ -2151,7 +2151,7 @@ namespace Emby.Server.Implementations.Data
 
         private static bool EnableJoinUserData(InternalItemsQuery query)
         {
-            if (query.User == null)
+            if (query.User is null)
             {
                 return false;
             }
@@ -2497,7 +2497,7 @@ namespace Emby.Server.Implementations.Data
         {
             var item = query.SimilarTo;
 
-            if (item == null)
+            if (item is null)
             {
                 return;
             }
@@ -4522,7 +4522,7 @@ namespace Emby.Server.Implementations.Data
             if (query.ExcludeInheritedTags.Length > 0)
             {
                 var paramName = "@ExcludeInheritedTags";
-                if (statement == null)
+                if (statement is null)
                 {
                     int index = 0;
                     string excludedTags = string.Join(',', query.ExcludeInheritedTags.Select(_ => paramName + index++));
@@ -4732,7 +4732,7 @@ namespace Emby.Server.Implementations.Data
                 return false;
             }
 
-            if (query.User == null)
+            if (query.User is null)
             {
                 return false;
             }

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

@@ -235,14 +235,14 @@ namespace Emby.Server.Implementations.Dto
 
             if (options.ContainsField(ItemFields.CanDelete))
             {
-                dto.CanDelete = user == null
+                dto.CanDelete = user is null
                     ? item.CanDelete()
                     : item.CanDelete(user);
             }
 
             if (options.ContainsField(ItemFields.CanDownload))
             {
-                dto.CanDownload = user == null
+                dto.CanDownload = user is null
                     ? item.CanDownload()
                     : item.CanDownload(user);
             }
@@ -571,7 +571,7 @@ namespace Emby.Server.Implementations.Dto
                         return null;
                     }
                 }).Where(i => i != null)
-                .Where(i => user == null ?
+                .Where(i => user is null ?
                     true :
                     i.IsVisible(user))
                 .GroupBy(i => i.Name, StringComparer.OrdinalIgnoreCase)
@@ -1143,7 +1143,7 @@ namespace Emby.Server.Implementations.Dto
                     if (episodeSeries != null)
                     {
                         dto.SeriesPrimaryImageTag = GetTagAndFillBlurhash(dto, episodeSeries, ImageType.Primary);
-                        if (dto.ImageTags == null || !dto.ImageTags.ContainsKey(ImageType.Primary))
+                        if (dto.ImageTags is null || !dto.ImageTags.ContainsKey(ImageType.Primary))
                         {
                             AttachPrimaryImageAspectRatio(dto, episodeSeries);
                         }
@@ -1193,7 +1193,7 @@ namespace Emby.Server.Implementations.Dto
                     if (series != null)
                     {
                         dto.SeriesPrimaryImageTag = GetTagAndFillBlurhash(dto, series, ImageType.Primary);
-                        if (dto.ImageTags == null || !dto.ImageTags.ContainsKey(ImageType.Primary))
+                        if (dto.ImageTags is null || !dto.ImageTags.ContainsKey(ImageType.Primary))
                         {
                             AttachPrimaryImageAspectRatio(dto, series);
                         }
@@ -1276,7 +1276,7 @@ namespace Emby.Server.Implementations.Dto
 
             var parent = currentItem.DisplayParent ?? currentItem.GetOwner() ?? currentItem.GetParent();
 
-            if (parent == null && originalItem is not UserRootFolder && originalItem is not UserView && originalItem is not AggregateFolder && originalItem is not ICollectionFolder && originalItem is not Channel)
+            if (parent is null && originalItem is not UserRootFolder && originalItem is not UserView && originalItem is not AggregateFolder && originalItem is not ICollectionFolder && originalItem is not Channel)
             {
                 parent = _libraryManager.GetCollectionFolders(originalItem).FirstOrDefault();
             }
@@ -1315,7 +1315,7 @@ namespace Emby.Server.Implementations.Dto
                 || parent is Series)
             {
                 parent ??= isFirst ? GetImageDisplayParent(item, item) ?? owner : parent;
-                if (parent == null)
+                if (parent is null)
                 {
                     break;
                 }
@@ -1403,7 +1403,7 @@ namespace Emby.Server.Implementations.Dto
         {
             var imageInfo = item.GetImageInfo(ImageType.Primary, 0);
 
-            if (imageInfo == null)
+            if (imageInfo is null)
             {
                 return null;
             }

+ 3 - 3
Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs

@@ -191,7 +191,7 @@ namespace Emby.Server.Implementations.EntryPoints
 
             lock (_libraryChangedSyncLock)
             {
-                if (LibraryUpdateTimer == null)
+                if (LibraryUpdateTimer is null)
                 {
                     LibraryUpdateTimer = new Timer(
                         LibraryUpdateTimerCallback,
@@ -227,7 +227,7 @@ namespace Emby.Server.Implementations.EntryPoints
 
             lock (_libraryChangedSyncLock)
             {
-                if (LibraryUpdateTimer == null)
+                if (LibraryUpdateTimer is null)
                 {
                     LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite);
                 }
@@ -254,7 +254,7 @@ namespace Emby.Server.Implementations.EntryPoints
 
             lock (_libraryChangedSyncLock)
             {
-                if (LibraryUpdateTimer == null)
+                if (LibraryUpdateTimer is null)
                 {
                     LibraryUpdateTimer = new Timer(LibraryUpdateTimerCallback, null, LibraryUpdateDuration, Timeout.Infinite);
                 }

+ 1 - 1
Emby.Server.Implementations/EntryPoints/UserDataChangeNotifier.cs

@@ -51,7 +51,7 @@ namespace Emby.Server.Implementations.EntryPoints
 
             lock (_syncLock)
             {
-                if (_updateTimer == null)
+                if (_updateTimer is null)
                 {
                     _updateTimer = new Timer(
                         UpdateTimerCallback,

+ 2 - 2
Emby.Server.Implementations/HttpServer/WebSocketConnection.cs

@@ -164,7 +164,7 @@ namespace Emby.Server.Implementations.HttpServer
             ReadResult result = await reader.ReadAsync().ConfigureAwait(false);
             ReadOnlySequence<byte> buffer = result.Buffer;
 
-            if (OnReceive == null)
+            if (OnReceive is null)
             {
                 // Tell the PipeReader how much of the buffer we have consumed
                 reader.AdvanceTo(buffer.End);
@@ -185,7 +185,7 @@ namespace Emby.Server.Implementations.HttpServer
                 return;
             }
 
-            if (stub == null)
+            if (stub is null)
             {
                 _logger.LogError("Error processing web socket message");
                 return;

+ 3 - 3
Emby.Server.Implementations/IO/FileRefresher.cs

@@ -80,7 +80,7 @@ namespace Emby.Server.Implementations.IO
                     return;
                 }
 
-                if (_timer == null)
+                if (_timer is null)
                 {
                     _timer = new Timer(OnTimerCallback, null, TimeSpan.FromSeconds(_configurationManager.Configuration.LibraryMonitorDelay), TimeSpan.FromMilliseconds(-1));
                 }
@@ -178,7 +178,7 @@ namespace Emby.Server.Implementations.IO
         {
             BaseItem? item = null;
 
-            while (item == null && !string.IsNullOrEmpty(path))
+            while (item is null && !string.IsNullOrEmpty(path))
             {
                 item = _libraryManager.FindByPath(path, null);
 
@@ -192,7 +192,7 @@ namespace Emby.Server.Implementations.IO
                 {
                     item = item.GetOwner() ?? item.GetParent();
 
-                    if (item == null)
+                    if (item is null)
                     {
                         break;
                     }

+ 23 - 23
Emby.Server.Implementations/Library/LibraryManager.cs

@@ -176,7 +176,7 @@ namespace Emby.Server.Implementations.Library
         {
             get
             {
-                if (_rootFolder == null)
+                if (_rootFolder is null)
                 {
                     lock (_rootFolderSyncLock)
                     {
@@ -656,7 +656,7 @@ namespace Emby.Server.Implementations.Library
 
             if (parent != null)
             {
-                var multiItemResolvers = resolvers == null ? MultiItemResolvers : resolvers.OfType<IMultiItemResolver>().ToArray();
+                var multiItemResolvers = resolvers is null ? MultiItemResolvers : resolvers.OfType<IMultiItemResolver>().ToArray();
 
                 foreach (var resolver in multiItemResolvers)
                 {
@@ -770,11 +770,11 @@ namespace Emby.Server.Implementations.Library
 
         public Folder GetUserRootFolder()
         {
-            if (_userRootFolder == null)
+            if (_userRootFolder is null)
             {
                 lock (_userRootFolderSyncLock)
                 {
-                    if (_userRootFolder == null)
+                    if (_userRootFolder is null)
                     {
                         var userRootPath = _configurationManager.ApplicationPaths.DefaultUserViewsPath;
 
@@ -792,7 +792,7 @@ namespace Emby.Server.Implementations.Library
                             _logger.LogError(ex, "Error creating UserRootFolder {Path}", newItemId);
                         }
 
-                        if (tmpItem == null)
+                        if (tmpItem is null)
                         {
                             _logger.LogDebug("Creating new userRootFolder with DeepCopy");
                             tmpItem = ((Folder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath))).DeepCopy<Folder, UserRootFolder>();
@@ -961,7 +961,7 @@ namespace Emby.Server.Implementations.Library
             var path = getPathFn(name);
             var id = GetItemByNameId<T>(path);
             var item = GetItemById(id) as T;
-            if (item == null)
+            if (item is null)
             {
                 item = new T
                 {
@@ -1627,7 +1627,7 @@ namespace Emby.Server.Implementations.Library
                 // Get an existing item by Id
                 video = GetItemById(info.ItemId.Value) as Video;
 
-                if (video == null)
+                if (video is null)
                 {
                     _logger.LogError("Unable to locate item with Id {ID}.", info.ItemId.Value);
                 }
@@ -1639,7 +1639,7 @@ namespace Emby.Server.Implementations.Library
                     // Try to resolve the path into a video
                     video = ResolvePath(_fileSystem.GetFileSystemInfo(info.Path)) as Video;
 
-                    if (video == null)
+                    if (video is null)
                     {
                         _logger.LogError("Intro resolver returned null for {Path}.", info.Path);
                     }
@@ -1711,7 +1711,7 @@ namespace Emby.Server.Implementations.Library
             foreach (var (name, sortOrder) in orderBy)
             {
                 var comparer = GetComparer(name, user);
-                if (comparer == null)
+                if (comparer is null)
                 {
                     continue;
                 }
@@ -2010,7 +2010,7 @@ namespace Emby.Server.Implementations.Library
             {
                 var parent = item.GetParent();
 
-                if (parent == null || parent is AggregateFolder)
+                if (parent is null || parent is AggregateFolder)
                 {
                     break;
                 }
@@ -2018,7 +2018,7 @@ namespace Emby.Server.Implementations.Library
                 item = parent;
             }
 
-            if (item == null)
+            if (item is null)
             {
                 return new List<Folder>();
             }
@@ -2032,7 +2032,7 @@ namespace Emby.Server.Implementations.Library
             {
                 var parent = item.GetParent();
 
-                if (parent == null || parent is AggregateFolder)
+                if (parent is null || parent is AggregateFolder)
                 {
                     break;
                 }
@@ -2040,7 +2040,7 @@ namespace Emby.Server.Implementations.Library
                 item = parent;
             }
 
-            if (item == null)
+            if (item is null)
             {
                 return new List<Folder>();
             }
@@ -2064,7 +2064,7 @@ namespace Emby.Server.Implementations.Library
                     .Find(folder => folder is CollectionFolder) as CollectionFolder;
             }
 
-            return collectionFolder == null ? new LibraryOptions() : collectionFolder.GetLibraryOptions();
+            return collectionFolder is null ? new LibraryOptions() : collectionFolder.GetLibraryOptions();
         }
 
         public string GetContentType(BaseItem item)
@@ -2129,7 +2129,7 @@ namespace Emby.Server.Implementations.Library
 
         private string GetTopFolderContentType(BaseItem item)
         {
-            if (item == null)
+            if (item is null)
             {
                 return null;
             }
@@ -2137,7 +2137,7 @@ namespace Emby.Server.Implementations.Library
             while (!item.ParentId.Equals(default))
             {
                 var parent = item.GetParent();
-                if (parent == null || parent is AggregateFolder)
+                if (parent is null || parent is AggregateFolder)
                 {
                     break;
                 }
@@ -2177,7 +2177,7 @@ namespace Emby.Server.Implementations.Library
 
             var refresh = false;
 
-            if (item == null || !string.Equals(item.Path, path, StringComparison.OrdinalIgnoreCase))
+            if (item is null || !string.Equals(item.Path, path, StringComparison.OrdinalIgnoreCase))
             {
                 Directory.CreateDirectory(path);
 
@@ -2225,7 +2225,7 @@ namespace Emby.Server.Implementations.Library
 
             var isNew = false;
 
-            if (item == null)
+            if (item is null)
             {
                 Directory.CreateDirectory(path);
 
@@ -2289,7 +2289,7 @@ namespace Emby.Server.Implementations.Library
 
             var isNew = false;
 
-            if (item == null)
+            if (item is null)
             {
                 Directory.CreateDirectory(path);
 
@@ -2362,7 +2362,7 @@ namespace Emby.Server.Implementations.Library
 
             var isNew = false;
 
-            if (item == null)
+            if (item is null)
             {
                 Directory.CreateDirectory(path);
 
@@ -2459,7 +2459,7 @@ namespace Emby.Server.Implementations.Library
                 episodeInfo = resolver.Resolve(episode.Path, isFolder, null, null, isAbsoluteNaming);
                 // Resolve from parent folder if it's not the Season folder
                 var parent = episode.GetParent();
-                if (episodeInfo == null && parent.GetType() == typeof(Folder))
+                if (episodeInfo is null && parent.GetType() == typeof(Folder))
                 {
                     episodeInfo = resolver.Resolve(parent.Path, true, null, null, isAbsoluteNaming);
                     if (episodeInfo != null)
@@ -2620,7 +2620,7 @@ namespace Emby.Server.Implementations.Library
         public IEnumerable<BaseItem> FindExtras(BaseItem owner, IReadOnlyList<FileSystemMetadata> fileSystemChildren, IDirectoryService directoryService)
         {
             var ownerVideoInfo = VideoResolver.Resolve(owner.Path, owner.IsFolder, _namingOptions);
-            if (ownerVideoInfo == null)
+            if (ownerVideoInfo is null)
             {
                 yield break;
             }
@@ -2754,7 +2754,7 @@ namespace Emby.Server.Implementations.Library
                 }
             })
             .Where(i => i != null)
-            .Where(i => query.User == null ?
+            .Where(i => query.User is null ?
                 true :
                 i.IsVisible(query.User))
             .ToList();

+ 2 - 2
Emby.Server.Implementations/Library/LiveStreamHelper.cs

@@ -60,7 +60,7 @@ namespace Emby.Server.Implementations.Library
                 }
             }
 
-            if (mediaInfo == null)
+            if (mediaInfo is null)
             {
                 if (addProbeDelay)
                 {
@@ -130,7 +130,7 @@ namespace Emby.Server.Implementations.Library
 
             var audioStream = mediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio);
 
-            if (audioStream == null || audioStream.Index == -1)
+            if (audioStream is null || audioStream.Index == -1)
             {
                 mediaSource.DefaultAudioStreamIndex = null;
             }

+ 7 - 7
Emby.Server.Implementations/Library/MediaSourceManager.cs

@@ -383,7 +383,7 @@ namespace Emby.Server.Implementations.Library
             var preferredSubs = NormalizeLanguage(user.SubtitleLanguagePreference);
 
             var defaultAudioIndex = source.DefaultAudioStreamIndex;
-            var audioLangage = defaultAudioIndex == null
+            var audioLangage = defaultAudioIndex is null
                 ? null
                 : source.MediaStreams.Where(i => i.Type == MediaStreamType.Audio && i.Index == defaultAudioIndex).Select(i => i.Language).FirstOrDefault();
 
@@ -417,13 +417,13 @@ namespace Emby.Server.Implementations.Library
         public void SetDefaultAudioAndSubtitleStreamIndexes(BaseItem item, MediaSourceInfo source, User user)
         {
             // Item would only be null if the app didn't supply ItemId as part of the live stream open request
-            var mediaType = item == null ? MediaType.Video : item.MediaType;
+            var mediaType = item is null ? MediaType.Video : item.MediaType;
 
             if (string.Equals(mediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
             {
-                var userData = item == null ? new UserItemData() : _userDataManager.GetUserData(user, item);
+                var userData = item is null ? new UserItemData() : _userDataManager.GetUserData(user, item);
 
-                var allowRememberingSelection = item == null || item.EnableRememberingTrackSelections;
+                var allowRememberingSelection = item is null || item.EnableRememberingTrackSelections;
 
                 SetDefaultAudioStreamIndex(source, userData, user, allowRememberingSelection);
                 SetDefaultSubtitleStreamIndex(source, userData, user, allowRememberingSelection);
@@ -543,7 +543,7 @@ namespace Emby.Server.Implementations.Library
 
             var audioStream = mediaSource.MediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio);
 
-            if (audioStream == null || audioStream.Index == -1)
+            if (audioStream is null || audioStream.Index == -1)
             {
                 mediaSource.DefaultAudioStreamIndex = null;
             }
@@ -638,7 +638,7 @@ namespace Emby.Server.Implementations.Library
                 }
             }
 
-            if (mediaInfo == null)
+            if (mediaInfo is null)
             {
                 if (addProbeDelay)
                 {
@@ -713,7 +713,7 @@ namespace Emby.Server.Implementations.Library
 
             var audioStream = mediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio);
 
-            if (audioStream == null || audioStream.Index == -1)
+            if (audioStream is null || audioStream.Index == -1)
             {
                 mediaSource.DefaultAudioStreamIndex = null;
             }

+ 1 - 1
Emby.Server.Implementations/Library/ResolverHelper.cs

@@ -43,7 +43,7 @@ namespace Emby.Server.Implementations.Library
 
             // Make sure DateCreated and DateModified have values
             var fileInfo = directoryService.GetFile(item.Path);
-            if (fileInfo == null)
+            if (fileInfo is null)
             {
                 return false;
             }

+ 2 - 2
Emby.Server.Implementations/Library/Resolvers/Audio/AudioResolver.cs

@@ -116,7 +116,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
 
                 // Use regular audio type for mixed libraries, owned items and music
                 if (isMixedCollectionType ||
-                    args.Parent == null ||
+                    args.Parent is null ||
                     isMusicCollectionType)
                 {
                     item = new MediaBrowser.Controller.Entities.Audio.Audio();
@@ -144,7 +144,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
             // TODO: Allow GetMultiDiscMovie in here
             var result = ResolveMultipleAudio(args.Parent, args.GetActualFileSystemChildren(), parseName);
 
-            if (result == null || result.Items.Count != 1 || result.Items[0] is not AudioBook item)
+            if (result is null || result.Items.Count != 1 || result.Items[0] is not AudioBook item)
             {
                 return null;
             }

+ 2 - 2
Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs

@@ -79,7 +79,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
                         videoType = VideoType.Dvd;
                     }
 
-                    if (videoType == null)
+                    if (videoType is null)
                     {
                         continue;
                     }
@@ -93,7 +93,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
                 videoInfo = VideoResolver.Resolve(args.Path, false, NamingOptions, parseName);
             }
 
-            if (videoInfo == null || (!videoInfo.IsStub && !VideoResolver.IsVideoFile(args.Path, NamingOptions)))
+            if (videoInfo is null || (!videoInfo.IsStub && !VideoResolver.IsVideoFile(args.Path, NamingOptions)))
             {
                 return null;
             }

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/ExtraResolver.cs

@@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
         public bool TryGetExtraTypeForOwner(string path, VideoFileInfo ownerVideoFileInfo, [NotNullWhen(true)] out ExtraType? extraType)
         {
             var extraResult = GetExtraInfo(path, _namingOptions);
-            if (extraResult.ExtraType == null)
+            if (extraResult.ExtraType is null)
             {
                 extraType = null;
                 return false;

+ 1 - 1
Emby.Server.Implementations/Library/Resolvers/GenericFolderResolver.cs

@@ -22,7 +22,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
         {
             base.SetInitialItemValues(item, args);
 
-            item.IsRoot = args.Parent == null;
+            item.IsRoot = args.Parent is null;
         }
     }
 }

+ 4 - 4
Emby.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs

@@ -108,7 +108,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
                 if (string.IsNullOrEmpty(collectionType))
                 {
                     // Owned items will be caught by the video extra resolver
-                    if (args.Parent == null)
+                    if (args.Parent is null)
                     {
                         return null;
                     }
@@ -127,10 +127,10 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
                 }
 
                 // ignore extras
-                return movie?.ExtraType == null ? movie : null;
+                return movie?.ExtraType is null ? movie : null;
             }
 
-            if (args.Parent == null)
+            if (args.Parent is null)
             {
                 return base.Resolve(args);
             }
@@ -205,7 +205,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Movies
             if (string.IsNullOrEmpty(collectionType))
             {
                 // Owned items should just use the plain video type
-                if (parent == null)
+                if (parent is null)
                 {
                     return ResolveVideos<Video>(parent, files, false, collectionType, false);
                 }

+ 3 - 3
Emby.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs

@@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
         {
             var parent = args.Parent;
 
-            if (parent == null)
+            if (parent is null)
             {
                 return null;
             }
@@ -53,7 +53,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
                 var episode = ResolveVideo<Episode>(args, false);
 
                 // Ignore extras
-                if (episode == null || episode.ExtraType != null)
+                if (episode is null || episode.ExtraType != null)
                 {
                     return null;
                 }
@@ -73,7 +73,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
                 }
 
                 // Assume season 1 if there's no season folder and a season number could not be determined
-                if (season == null && !episode.ParentIndexNumber.HasValue && (episode.IndexNumber.HasValue || episode.PremiereDate.HasValue))
+                if (season is null && !episode.ParentIndexNumber.HasValue && (episode.IndexNumber.HasValue || episode.PremiereDate.HasValue))
                 {
                     episode.ParentIndexNumber = 1;
                 }

+ 2 - 2
Emby.Server.Implementations/Library/UserViewManager.cs

@@ -47,7 +47,7 @@ namespace Emby.Server.Implementations.Library
         {
             var user = _userManager.GetUserById(query.UserId);
 
-            if (user == null)
+            if (user is null)
             {
                 throw new ArgumentException("User Id specified in the query does not exist.", nameof(query));
             }
@@ -208,7 +208,7 @@ namespace Emby.Server.Implementations.Library
                 // Only grab the index container for media
                 var container = item.IsFolder || !request.GroupItems ? null : item.LatestItemsIndexContainer;
 
-                if (container == null)
+                if (container is null)
                 {
                     list.Add(new Tuple<BaseItem, List<BaseItem>>(null, new List<BaseItem> { item }));
                 }

+ 1 - 1
Emby.Server.Implementations/Library/Validators/CollectionPostScanTask.cs

@@ -118,7 +118,7 @@ namespace Emby.Server.Implementations.Library.Validators
                 try
                 {
                     var boxSet = boxSets.FirstOrDefault(b => b?.Name == collectionName) as BoxSet;
-                    if (boxSet == null)
+                    if (boxSet is null)
                     {
                         // won't automatically create collection if only one movie in it
                         if (movieIds.Count >= 2)

+ 11 - 11
Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -295,7 +295,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 }
 
                 var program = GetProgramInfoFromCache(timer);
-                if (program == null)
+                if (program is null)
                 {
                     OnTimerOutOfDate(timer);
                     continue;
@@ -642,7 +642,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 programInfo = GetProgramInfoFromCache(info);
             }
 
-            if (programInfo == null)
+            if (programInfo is null)
             {
                 _logger.LogInformation("Unable to find program with Id {0}. Will search using start date", info.ProgramId);
                 programInfo = GetProgramInfoFromCache(info.ChannelId, info.StartDate);
@@ -744,7 +744,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         {
             var existingTimer = _timerProvider.GetTimer(updatedTimer.Id);
 
-            if (existingTimer == null)
+            if (existingTimer is null)
             {
                 throw new ResourceNotFoundException();
             }
@@ -912,7 +912,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
 
                 var epgChannel = await GetEpgChannelFromTunerChannel(provider.Item1, provider.Item2, channel, cancellationToken).ConfigureAwait(false);
 
-                if (epgChannel == null)
+                if (epgChannel is null)
                 {
                     _logger.LogDebug("EPG channel not found for tuner channel {0}-{1} from {2}-{3}", channel.Number, channel.Name, provider.Item1.Name, provider.Item2.ListingsId ?? string.Empty);
                     continue;
@@ -945,7 +945,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 {
                     var provider = _liveTvManager.ListingProviders.FirstOrDefault(l => string.Equals(l.Type, i.Type, StringComparison.OrdinalIgnoreCase));
 
-                    return provider == null ? null : new Tuple<IListingsProvider, ListingsProviderInfo>(provider, i);
+                    return provider is null ? null : new Tuple<IListingsProvider, ListingsProviderInfo>(provider, i);
                 })
                 .Where(i => i != null)
                 .ToList();
@@ -1232,7 +1232,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 programInfo = GetProgramInfoFromCache(timer);
             }
 
-            if (programInfo == null)
+            if (programInfo is null)
             {
                 _logger.LogInformation("Unable to find program with Id {0}. Will search using start date", timer.ProgramId);
                 programInfo = GetProgramInfoFromCache(timer.ChannelId, timer.StartDate);
@@ -1437,7 +1437,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
 
             var parentPath = Path.GetDirectoryName(path);
 
-            while (item == null && !string.IsNullOrEmpty(path))
+            while (item is null && !string.IsNullOrEmpty(path))
             {
                 item = _libraryManager.FindByPath(path, null);
 
@@ -1474,7 +1474,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             var seriesTimerId = timer.SeriesTimerId;
             var seriesTimer = _seriesTimerProvider.GetAll().FirstOrDefault(i => string.Equals(i.Id, seriesTimerId, StringComparison.OrdinalIgnoreCase));
 
-            if (seriesTimer == null || seriesTimer.KeepUpTo <= 0)
+            if (seriesTimer is null || seriesTimer.KeepUpTo <= 0)
             {
                 return;
             }
@@ -1695,7 +1695,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 _ => null
             };
 
-            if (imageSaveFilenameWithoutExtension == null)
+            if (imageSaveFilenameWithoutExtension is null)
             {
                 return;
             }
@@ -1782,7 +1782,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 }).FirstOrDefault() as LiveTvProgram;
 
                 // dummy this up
-                if (program == null)
+                if (program is null)
                 {
                     program = new LiveTvProgram
                     {
@@ -2240,7 +2240,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                         ? null
                         : _timerProvider.GetTimerByProgramId(timer.ProgramId));
 
-                if (existingTimer == null)
+                if (existingTimer is null)
                 {
                     if (ShouldCancelTimerForSeriesTimer(seriesTimer, timer))
                     {

+ 1 - 1
Emby.Server.Implementations/LiveTv/EmbyTV/ItemDataProvider.cs

@@ -49,7 +49,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                 {
                     var bytes = File.ReadAllBytes(_dataPath);
                     _items = JsonSerializer.Deserialize<T[]>(bytes, _jsonOptions);
-                    if (_items == null)
+                    if (_items is null)
                     {
                         Logger.LogError("Error deserializing {Path}, data was null", _dataPath);
                         _items = Array.Empty<T>();

+ 6 - 6
Emby.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs

@@ -111,7 +111,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
             using var response = await Send(options, true, info, cancellationToken).ConfigureAwait(false);
             await using var responseStream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
             var dailySchedules = await JsonSerializer.DeserializeAsync<IReadOnlyList<DayDto>>(responseStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
-            if (dailySchedules == null)
+            if (dailySchedules is null)
             {
                 return Array.Empty<ProgramInfo>();
             }
@@ -127,7 +127,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
             using var innerResponse = await Send(programRequestOptions, true, info, cancellationToken).ConfigureAwait(false);
             await using var innerResponseStream = await innerResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
             var programDetails = await JsonSerializer.DeserializeAsync<IReadOnlyList<ProgramDetailsDto>>(innerResponseStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
-            if (programDetails == null)
+            if (programDetails is null)
             {
                 return Array.Empty<ProgramInfo>();
             }
@@ -228,7 +228,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
 
         private ProgramInfo GetProgram(string channelId, ProgramDto programInfo, ProgramDetailsDto details)
         {
-            if (programInfo.AirDateTime == null)
+            if (programInfo.AirDateTime is null)
             {
                 return null;
             }
@@ -283,7 +283,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
                 EpisodeTitle = episodeTitle,
                 Audio = audioType,
                 // IsNew = programInfo.@new ?? false,
-                IsRepeat = programInfo.New == null,
+                IsRepeat = programInfo.New is null,
                 IsSeries = string.Equals(details.EntityType, "episode", StringComparison.OrdinalIgnoreCase),
                 ImageUrl = details.PrimaryImage,
                 ThumbImageUrl = details.ThumbImage,
@@ -407,7 +407,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
                 .ThenByDescending(i => GetSizeOrder(i))
                 .FirstOrDefault();
 
-            if (match == null)
+            if (match is null)
             {
                 return null;
             }
@@ -785,7 +785,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
             using var httpResponse = await Send(options, true, info, cancellationToken).ConfigureAwait(false);
             await using var stream = await httpResponse.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
             var root = await JsonSerializer.DeserializeAsync<ChannelDto>(stream, _jsonOptions, cancellationToken).ConfigureAwait(false);
-            if (root == null)
+            if (root is null)
             {
                 return new List<ChannelInfo>();
             }

+ 1 - 1
Emby.Server.Implementations/LiveTv/Listings/XmlTvListingsProvider.cs

@@ -162,7 +162,7 @@ namespace Emby.Server.Implementations.LiveTv.Listings
                 HasImage = !string.IsNullOrEmpty(program.Icon?.Source),
                 OfficialRating = string.IsNullOrEmpty(program.Rating?.Value) ? null : program.Rating.Value,
                 CommunityRating = program.StarRating,
-                SeriesId = program.Episode == null ? null : program.Title?.GetMD5().ToString("N", CultureInfo.InvariantCulture)
+                SeriesId = program.Episode is null ? null : program.Title?.GetMD5().ToString("N", CultureInfo.InvariantCulture)
             };
 
             if (string.IsNullOrWhiteSpace(program.ProgramId))

+ 4 - 4
Emby.Server.Implementations/LiveTv/LiveTvDtoService.cs

@@ -150,7 +150,7 @@ namespace Emby.Server.Implementations.LiveTv
                 dto.ProgramId = GetInternalProgramId(info.ProgramId).ToString("N", CultureInfo.InvariantCulture);
             }
 
-            dto.DayPattern = info.Days == null ? null : GetDayPattern(info.Days.ToArray());
+            dto.DayPattern = info.Days is null ? null : GetDayPattern(info.Days.ToArray());
 
             FillImages(dto, info.Name, info.SeriesId);
 
@@ -228,7 +228,7 @@ namespace Emby.Server.Implementations.LiveTv
                     }
                 }
 
-                if (dto.ParentBackdropImageTags == null || dto.ParentBackdropImageTags.Length == 0)
+                if (dto.ParentBackdropImageTags is null || dto.ParentBackdropImageTags.Length == 0)
                 {
                     image = program.GetImageInfo(ImageType.Backdrop, 0);
                     if (image != null)
@@ -305,7 +305,7 @@ namespace Emby.Server.Implementations.LiveTv
                 DtoOptions = new DtoOptions(false)
             }).FirstOrDefault();
 
-            if (program == null)
+            if (program is null)
             {
                 program = _libraryManager.GetItemList(new InternalItemsQuery
                 {
@@ -334,7 +334,7 @@ namespace Emby.Server.Implementations.LiveTv
                     }
                 }
 
-                if (dto.ParentBackdropImageTags == null || dto.ParentBackdropImageTags.Length == 0)
+                if (dto.ParentBackdropImageTags is null || dto.ParentBackdropImageTags.Length == 0)
                 {
                     image = program.GetImageInfo(ImageType.Backdrop, 0);
                     if (image != null)

+ 11 - 11
Emby.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -434,7 +434,7 @@ namespace Emby.Server.Implementations.LiveTv
 
             var item = _libraryManager.GetItemById(id) as LiveTvChannel;
 
-            if (item == null)
+            if (item is null)
             {
                 item = new LiveTvChannel
                 {
@@ -948,7 +948,7 @@ namespace Emby.Server.Implementations.LiveTv
 
             var channel = _libraryManager.GetItemById(program.ChannelId);
 
-            if (channel == null)
+            if (channel is null)
             {
                 return score;
             }
@@ -1314,7 +1314,7 @@ namespace Emby.Server.Implementations.LiveTv
 
         private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, DtoOptions dtoOptions, User user)
         {
-            if (user == null)
+            if (user is null)
             {
                 return new QueryResult<BaseItem>();
             }
@@ -1702,7 +1702,7 @@ namespace Emby.Server.Implementations.LiveTv
         {
             var timer = await GetTimer(id, CancellationToken.None).ConfigureAwait(false);
 
-            if (timer == null)
+            if (timer is null)
             {
                 throw new ResourceNotFoundException(string.Format(CultureInfo.InvariantCulture, "Timer with Id {0} not found", id));
             }
@@ -1721,7 +1721,7 @@ namespace Emby.Server.Implementations.LiveTv
         {
             var timer = await GetSeriesTimer(id, CancellationToken.None).ConfigureAwait(false);
 
-            if (timer == null)
+            if (timer is null)
             {
                 throw new ResourceNotFoundException(string.Format(CultureInfo.InvariantCulture, "SeriesTimer with Id {0} not found", id));
             }
@@ -1834,7 +1834,7 @@ namespace Emby.Server.Implementations.LiveTv
                     {
                         var internalChannelId = _tvDtoService.GetInternalChannelId(i.Item2.Name, i.Item1.ChannelId);
                         var channel = _libraryManager.GetItemById(internalChannelId);
-                        channelName = channel == null ? null : channel.Name;
+                        channelName = channel is null ? null : channel.Name;
                     }
 
                     return _tvDtoService.GetSeriesTimerInfoDto(i.Item1, i.Item2, channelName);
@@ -2147,7 +2147,7 @@ namespace Emby.Server.Implementations.LiveTv
 
             var service = _services.FirstOrDefault(i => string.Equals(i.GetType().FullName.GetMD5().ToString("N", CultureInfo.InvariantCulture), parts[0], StringComparison.OrdinalIgnoreCase));
 
-            if (service == null)
+            if (service is null)
             {
                 throw new ArgumentException("Service not found.");
             }
@@ -2178,7 +2178,7 @@ namespace Emby.Server.Implementations.LiveTv
 
             var provider = _tunerHosts.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase));
 
-            if (provider == null)
+            if (provider is null)
             {
                 throw new ResourceNotFoundException();
             }
@@ -2222,7 +2222,7 @@ namespace Emby.Server.Implementations.LiveTv
 
             var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase));
 
-            if (provider == null)
+            if (provider is null)
             {
                 throw new ResourceNotFoundException(
                     string.Format(
@@ -2334,7 +2334,7 @@ namespace Emby.Server.Implementations.LiveTv
             {
                 var provider = _listingProviders.FirstOrDefault(i => string.Equals(providerType, i.Type, StringComparison.OrdinalIgnoreCase));
 
-                if (provider == null)
+                if (provider is null)
                 {
                     throw new ResourceNotFoundException();
                 }
@@ -2347,7 +2347,7 @@ namespace Emby.Server.Implementations.LiveTv
 
                 var provider = _listingProviders.FirstOrDefault(i => string.Equals(info.Type, i.Type, StringComparison.OrdinalIgnoreCase));
 
-                if (provider == null)
+                if (provider is null)
                 {
                     throw new ResourceNotFoundException();
                 }

+ 1 - 1
Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs

@@ -302,7 +302,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
 
             var hdHomerunChannelInfo = channels.FirstOrDefault() as HdHomerunChannelInfo;
 
-            if (hdHomerunChannelInfo == null || hdHomerunChannelInfo.IsLegacyTuner)
+            if (hdHomerunChannelInfo is null || hdHomerunChannelInfo.IsLegacyTuner)
             {
                 return await GetTunerInfosUdp(info, cancellationToken).ConfigureAwait(false);
             }

+ 2 - 2
Emby.Server.Implementations/Localization/LocalizationManager.cs

@@ -329,14 +329,14 @@ namespace Emby.Server.Implementations.Localization
         {
             await using var stream = _assembly.GetManifestResourceStream(resourcePath);
             // If a Culture doesn't have a translation the stream will be null and it defaults to en-us further up the chain
-            if (stream == null)
+            if (stream is null)
             {
                 _logger.LogError("Missing translation/culture resource: {ResourcePath}", resourcePath);
                 return;
             }
 
             var dict = await JsonSerializer.DeserializeAsync<Dictionary<string, string>>(stream, _jsonOptions).ConfigureAwait(false);
-            if (dict == null)
+            if (dict is null)
             {
                 throw new InvalidOperationException($"Resource contains invalid data: '{stream}'");
             }

+ 2 - 2
Emby.Server.Implementations/Playlists/PlaylistManager.cs

@@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.Playlists
 
             var folderName = _fileSystem.GetValidFilename(name);
             var parentFolder = GetPlaylistsFolder(Guid.Empty);
-            if (parentFolder == null)
+            if (parentFolder is null)
             {
                 throw new ArgumentException(nameof(parentFolder));
             }
@@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.Playlists
                 {
                     var item = _libraryManager.GetItemById(itemId);
 
-                    if (item == null)
+                    if (item is null)
                     {
                         throw new ArgumentException("No item exists with the supplied Id");
                     }

+ 1 - 1
Emby.Server.Implementations/Playlists/PlaylistsFolder.cs

@@ -39,7 +39,7 @@ namespace Emby.Server.Implementations.Playlists
 
         protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
         {
-            if (query.User == null)
+            if (query.User is null)
             {
                 query.Recursive = false;
                 return base.GetItemsInternal(query);

+ 5 - 5
Emby.Server.Implementations/Plugins/PluginManager.cs

@@ -174,7 +174,7 @@ namespace Emby.Server.Implementations.Plugins
             foreach (var pluginServiceRegistrator in _appHost.GetExportTypes<IPluginServiceRegistrator>())
             {
                 var plugin = GetPluginByAssembly(pluginServiceRegistrator.Assembly);
-                if (plugin == null)
+                if (plugin is null)
                 {
                     _logger.LogError("Unable to find plugin in assembly {Assembly}", pluginServiceRegistrator.Assembly.FullName);
                     continue;
@@ -263,7 +263,7 @@ namespace Emby.Server.Implementations.Plugins
         {
             LocalPlugin? plugin;
 
-            if (version == null)
+            if (version is null)
             {
                 // If no version is given, return the current instance.
                 var plugins = _plugins.Where(p => p.Id.Equals(id)).ToList();
@@ -320,7 +320,7 @@ namespace Emby.Server.Implementations.Plugins
             ArgumentNullException.ThrowIfNull(assembly);
 
             var plugin = _plugins.FirstOrDefault(p => p.DllFiles.Contains(assembly.Location));
-            if (plugin == null)
+            if (plugin is null)
             {
                 // A plugin's assembly didn't cause this issue, so ignore it.
                 return;
@@ -442,7 +442,7 @@ namespace Emby.Server.Implementations.Plugins
                 _logger.LogDebug("Creating instance of {Type}", type);
                 // _appHost.ServiceProvider is already assigned when we create the plugins
                 var instance = (IPlugin)ActivatorUtilities.CreateInstance(_appHost.ServiceProvider!, type);
-                if (plugin == null)
+                if (plugin is null)
                 {
                     // Create a dummy record for the providers.
                     // TODO: remove this code once all provided have been released as separate plugins.
@@ -711,7 +711,7 @@ namespace Emby.Server.Implementations.Plugins
                     && p.IsEnabledAndSupported
                     && p.Version != plugin.Version);
 
-            if (previousVersion == null)
+            if (previousVersion is null)
             {
                 // This value is memory only - so that the web will show restart required.
                 plugin.Manifest.Status = PluginStatus.Restart;

+ 1 - 1
Emby.Server.Implementations/ScheduledTasks/ScheduledTaskWorker.cs

@@ -128,7 +128,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
 
                 lock (_lastExecutionResultSyncLock)
                 {
-                    if (_lastExecutionResult == null && !_readFromFile)
+                    if (_lastExecutionResult is null && !_readFromFile)
                     {
                         if (File.Exists(path))
                         {

+ 3 - 3
Emby.Server.Implementations/ScheduledTasks/TaskManager.cs

@@ -94,7 +94,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
         {
             var scheduledTask = ScheduledTasks.FirstOrDefault(t => t.ScheduledTask.GetType() == typeof(T));
 
-            if (scheduledTask == null)
+            if (scheduledTask is null)
             {
                 _logger.LogError("Unable to find scheduled task of type {0} in QueueScheduledTask.", typeof(T).Name);
             }
@@ -126,7 +126,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
         {
             var scheduledTask = ScheduledTasks.FirstOrDefault(t => t.ScheduledTask.GetType() == typeof(T));
 
-            if (scheduledTask == null)
+            if (scheduledTask is null)
             {
                 _logger.LogError("Unable to find scheduled task of type {0} in Execute.", typeof(T).Name);
             }
@@ -155,7 +155,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
         {
             var scheduledTask = ScheduledTasks.FirstOrDefault(t => t.ScheduledTask.GetType() == task.GetType());
 
-            if (scheduledTask == null)
+            if (scheduledTask is null)
             {
                 _logger.LogError("Unable to find scheduled task of type {0} in QueueScheduledTask.", task.GetType().Name);
             }

+ 1 - 1
Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs

@@ -50,7 +50,7 @@ namespace Emby.Server.Implementations.ScheduledTasks.Triggers
 
             DateTime triggerDate;
 
-            if (lastResult == null)
+            if (lastResult is null)
             {
                 // Task has never been completed before
                 triggerDate = DateTime.UtcNow.AddHours(1);

+ 16 - 16
Emby.Server.Implementations/Session/SessionManager.cs

@@ -377,11 +377,11 @@ namespace Emby.Server.Implementations.Session
                 info.MediaSourceId = info.ItemId.ToString("N", CultureInfo.InvariantCulture);
             }
 
-            if (!info.ItemId.Equals(default) && info.Item == null && libraryItem != null)
+            if (!info.ItemId.Equals(default) && info.Item is null && libraryItem != null)
             {
                 var current = session.NowPlayingItem;
 
-                if (current == null || !info.ItemId.Equals(current.Id))
+                if (current is null || !info.ItemId.Equals(current.Id))
                 {
                     var runtimeTicks = libraryItem.RunTimeTicks;
 
@@ -495,7 +495,7 @@ namespace Emby.Server.Implementations.Session
 
             sessionInfo.UserId = user?.Id ?? Guid.Empty;
             sessionInfo.UserName = user?.Username;
-            sessionInfo.UserPrimaryImageTag = user?.ProfileImage == null ? null : GetImageCacheTag(user);
+            sessionInfo.UserPrimaryImageTag = user?.ProfileImage is null ? null : GetImageCacheTag(user);
             sessionInfo.RemoteEndPoint = remoteEndPoint;
             sessionInfo.Client = appName;
 
@@ -506,7 +506,7 @@ namespace Emby.Server.Implementations.Session
 
             sessionInfo.ApplicationVersion = appVersion;
 
-            if (user == null)
+            if (user is null)
             {
                 sessionInfo.AdditionalUsers = Array.Empty<SessionUserInfo>();
             }
@@ -536,7 +536,7 @@ namespace Emby.Server.Implementations.Session
 
             sessionInfo.UserId = user?.Id ?? Guid.Empty;
             sessionInfo.UserName = username;
-            sessionInfo.UserPrimaryImageTag = user?.ProfileImage == null ? null : GetImageCacheTag(user);
+            sessionInfo.UserPrimaryImageTag = user?.ProfileImage is null ? null : GetImageCacheTag(user);
             sessionInfo.RemoteEndPoint = remoteEndPoint;
 
             if (string.IsNullOrEmpty(deviceName))
@@ -570,7 +570,7 @@ namespace Emby.Server.Implementations.Session
 
             var user = _userManager.GetUserById(session.UserId);
 
-            if (user == null)
+            if (user is null)
             {
                 throw new InvalidOperationException("User not found");
             }
@@ -618,7 +618,7 @@ namespace Emby.Server.Implementations.Session
                         await OnPlaybackStopped(new PlaybackStopInfo
                         {
                             Item = session.NowPlayingItem,
-                            ItemId = session.NowPlayingItem == null ? Guid.Empty : session.NowPlayingItem.Id,
+                            ItemId = session.NowPlayingItem is null ? Guid.Empty : session.NowPlayingItem.Id,
                             SessionId = session.Id,
                             MediaSourceId = session.PlayState?.MediaSourceId,
                             PositionTicks = session.PlayState?.PositionTicks
@@ -912,11 +912,11 @@ namespace Emby.Server.Implementations.Session
                 info.MediaSourceId = info.ItemId.ToString("N", CultureInfo.InvariantCulture);
             }
 
-            if (!info.ItemId.Equals(default) && info.Item == null && libraryItem != null)
+            if (!info.ItemId.Equals(default) && info.Item is null && libraryItem != null)
             {
                 var current = session.NowPlayingItem;
 
-                if (current == null || !info.ItemId.Equals(current.Id))
+                if (current is null || !info.ItemId.Equals(current.Id))
                 {
                     MediaSourceInfo mediaSource = null;
 
@@ -1037,7 +1037,7 @@ namespace Emby.Server.Implementations.Session
         private SessionInfo GetSession(string sessionId, bool throwOnMissing = true)
         {
             var session = Sessions.FirstOrDefault(i => string.Equals(i.Id, sessionId, StringComparison.Ordinal));
-            if (session == null && throwOnMissing)
+            if (session is null && throwOnMissing)
             {
                 throw new ResourceNotFoundException(
                     string.Format(CultureInfo.InvariantCulture, "Session {0} not found.", sessionId));
@@ -1051,7 +1051,7 @@ namespace Emby.Server.Implementations.Session
             // Accept either device id or session id
             var session = Sessions.FirstOrDefault(i => string.Equals(i.Id, sessionId, StringComparison.Ordinal));
 
-            if (session == null)
+            if (session is null)
             {
                 throw new ResourceNotFoundException(
                     string.Format(CultureInfo.InvariantCulture, "Session {0} not found.", sessionId));
@@ -1231,7 +1231,7 @@ namespace Emby.Server.Implementations.Session
         {
             var item = _libraryManager.GetItemById(id);
 
-            if (item == null)
+            if (item is null)
             {
                 _logger.LogError("A non-existent item Id {0} was passed into TranslateItemForPlayback", id);
                 return Array.Empty<BaseItem>();
@@ -1284,7 +1284,7 @@ namespace Emby.Server.Implementations.Session
         {
             var item = _libraryManager.GetItemById(id);
 
-            if (item == null)
+            if (item is null)
             {
                 _logger.LogError("A non-existent item Id {0} was passed into TranslateItemForInstantMix", id);
                 return new List<BaseItem>();
@@ -1480,7 +1480,7 @@ namespace Emby.Server.Implementations.Session
                     true).ConfigureAwait(false);
             }
 
-            if (user == null)
+            if (user is null)
             {
                 AuthenticationFailed?.Invoke(this, new GenericEventArgs<AuthenticationRequest>(request));
                 throw new AuthenticationException("Invalid username or password entered.");
@@ -1541,7 +1541,7 @@ namespace Emby.Server.Implementations.Session
 
             foreach (var auth in allExistingForDevice)
             {
-                if (existing == null || !string.Equals(auth.AccessToken, existing.AccessToken, StringComparison.Ordinal))
+                if (existing is null || !string.Equals(auth.AccessToken, existing.AccessToken, StringComparison.Ordinal))
                 {
                     try
                     {
@@ -1677,7 +1677,7 @@ namespace Emby.Server.Implementations.Session
 
             var dtoOptions = _itemInfoDtoOptions;
 
-            if (_itemInfoDtoOptions == null)
+            if (_itemInfoDtoOptions is null)
             {
                 dtoOptions = new DtoOptions
                 {

+ 1 - 1
Emby.Server.Implementations/Session/SessionWebSocketListener.cs

@@ -202,7 +202,7 @@ namespace Emby.Server.Implementations.Session
         {
             lock (_keepAliveLock)
             {
-                if (_keepAliveCancellationToken == null)
+                if (_keepAliveCancellationToken is null)
                 {
                     _keepAliveCancellationToken = new CancellationTokenSource();
                     // Start KeepAlive watcher

+ 1 - 1
Emby.Server.Implementations/Session/WebSocketController.cs

@@ -73,7 +73,7 @@ namespace Emby.Server.Implementations.Session
                 .OrderByDescending(i => i.LastActivityDate)
                 .FirstOrDefault();
 
-            if (socket == null)
+            if (socket is null)
             {
                 return Task.CompletedTask;
             }

+ 3 - 3
Emby.Server.Implementations/Sorting/AiredEpisodeOrderComparer.cs

@@ -31,9 +31,9 @@ namespace Emby.Server.Implementations.Sorting
             var episode1 = x as Episode;
             var episode2 = y as Episode;
 
-            if (episode1 == null)
+            if (episode1 is null)
             {
-                if (episode2 == null)
+                if (episode2 is null)
                 {
                     return 0;
                 }
@@ -41,7 +41,7 @@ namespace Emby.Server.Implementations.Sorting
                 return 1;
             }
 
-            if (episode2 == null)
+            if (episode2 is null)
             {
                 return -1;
             }

+ 1 - 1
Emby.Server.Implementations/Sorting/PlayCountComparer.cs

@@ -57,7 +57,7 @@ namespace Emby.Server.Implementations.Sorting
         {
             var userdata = UserDataRepository.GetUserData(User, x);
 
-            return userdata == null ? 0 : userdata.PlayCount;
+            return userdata is null ? 0 : userdata.PlayCount;
         }
     }
 }

+ 1 - 1
Emby.Server.Implementations/Sorting/PremiereDateComparer.cs

@@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.Sorting
         /// <returns>DateTime.</returns>
         private static DateTime GetDate(BaseItem? x)
         {
-            if (x == null)
+            if (x is null)
             {
                 return DateTime.MinValue;
             }

+ 1 - 1
Emby.Server.Implementations/Sorting/ProductionYearComparer.cs

@@ -33,7 +33,7 @@ namespace Emby.Server.Implementations.Sorting
         /// <returns>DateTime.</returns>
         private static int GetValue(BaseItem? x)
         {
-            if (x == null)
+            if (x is null)
             {
                 return 0;
             }

+ 2 - 2
Emby.Server.Implementations/SyncPlay/Group.cs

@@ -197,7 +197,7 @@ namespace Emby.Server.Implementations.SyncPlay
         private bool HasAccessToQueue(User user, IReadOnlyList<Guid> queue)
         {
             // Check if queue is empty.
-            if (queue == null || queue.Count == 0)
+            if (queue is null || queue.Count == 0)
             {
                 return true;
             }
@@ -217,7 +217,7 @@ namespace Emby.Server.Implementations.SyncPlay
         private bool AllUsersHaveAccessToQueue(IReadOnlyList<Guid> queue)
         {
             // Check if queue is empty.
-            if (queue == null || queue.Count == 0)
+            if (queue is null || queue.Count == 0)
             {
                 return true;
             }

+ 11 - 11
Emby.Server.Implementations/SyncPlay/SyncPlayManager.cs

@@ -102,12 +102,12 @@ namespace Emby.Server.Implementations.SyncPlay
         /// <inheritdoc />
         public void NewGroup(SessionInfo session, NewGroupRequest request, CancellationToken cancellationToken)
         {
-            if (session == null)
+            if (session is null)
             {
                 throw new InvalidOperationException("Session is null!");
             }
 
-            if (request == null)
+            if (request is null)
             {
                 throw new InvalidOperationException("Request is null!");
             }
@@ -138,12 +138,12 @@ namespace Emby.Server.Implementations.SyncPlay
         /// <inheritdoc />
         public void JoinGroup(SessionInfo session, JoinGroupRequest request, CancellationToken cancellationToken)
         {
-            if (session == null)
+            if (session is null)
             {
                 throw new InvalidOperationException("Session is null!");
             }
 
-            if (request == null)
+            if (request is null)
             {
                 throw new InvalidOperationException("Request is null!");
             }
@@ -155,7 +155,7 @@ namespace Emby.Server.Implementations.SyncPlay
             {
                 _groups.TryGetValue(request.GroupId, out Group group);
 
-                if (group == null)
+                if (group is null)
                 {
                     _logger.LogWarning("Session {SessionId} tried to join group {GroupId} that does not exist.", session.Id, request.GroupId);
 
@@ -204,12 +204,12 @@ namespace Emby.Server.Implementations.SyncPlay
         /// <inheritdoc />
         public void LeaveGroup(SessionInfo session, LeaveGroupRequest request, CancellationToken cancellationToken)
         {
-            if (session == null)
+            if (session is null)
             {
                 throw new InvalidOperationException("Session is null!");
             }
 
-            if (request == null)
+            if (request is null)
             {
                 throw new InvalidOperationException("Request is null!");
             }
@@ -257,12 +257,12 @@ namespace Emby.Server.Implementations.SyncPlay
         /// <inheritdoc />
         public List<GroupInfoDto> ListGroups(SessionInfo session, ListGroupsRequest request)
         {
-            if (session == null)
+            if (session is null)
             {
                 throw new InvalidOperationException("Session is null!");
             }
 
-            if (request == null)
+            if (request is null)
             {
                 throw new InvalidOperationException("Request is null!");
             }
@@ -291,12 +291,12 @@ namespace Emby.Server.Implementations.SyncPlay
         /// <inheritdoc />
         public void HandleRequest(SessionInfo session, IGroupPlaybackRequest request, CancellationToken cancellationToken)
         {
-            if (session == null)
+            if (session is null)
             {
                 throw new InvalidOperationException("Session is null!");
             }
 
-            if (request == null)
+            if (request is null)
             {
                 throw new InvalidOperationException("Request is null!");
             }

+ 2 - 2
Emby.Server.Implementations/TV/TVSeriesManager.cs

@@ -37,7 +37,7 @@ namespace Emby.Server.Implementations.TV
         {
             var user = _userManager.GetUserById(query.UserId);
 
-            if (user == null)
+            if (user is null)
             {
                 throw new ArgumentException("User not found");
             }
@@ -86,7 +86,7 @@ namespace Emby.Server.Implementations.TV
         {
             var user = _userManager.GetUserById(request.UserId);
 
-            if (user == null)
+            if (user is null)
             {
                 throw new ArgumentException("User not found");
             }

+ 4 - 4
Emby.Server.Implementations/Updates/InstallationManager.cs

@@ -102,7 +102,7 @@ namespace Emby.Server.Implementations.Updates
                 PackageInfo[]? packages = await _httpClientFactory.CreateClient(NamedClient.Default)
                         .GetFromJsonAsync<PackageInfo[]>(new Uri(manifest), _jsonSerializerOptions, cancellationToken).ConfigureAwait(false);
 
-                if (packages == null)
+                if (packages is null)
                 {
                     return Array.Empty<PackageInfo>();
                 }
@@ -251,7 +251,7 @@ namespace Emby.Server.Implementations.Updates
             var package = FilterPackages(availablePackages, name, id, specificVersion).FirstOrDefault();
 
             // Package not found in repository
-            if (package == null)
+            if (package is null)
             {
                 yield break;
             }
@@ -370,7 +370,7 @@ namespace Emby.Server.Implementations.Updates
         /// <param name="plugin">The <see cref="LocalPlugin"/> to uninstall.</param>
         public void UninstallPlugin(LocalPlugin plugin)
         {
-            if (plugin == null)
+            if (plugin is null)
             {
                 return;
             }
@@ -565,7 +565,7 @@ namespace Emby.Server.Implementations.Updates
                   ?? _pluginManager.Plugins.FirstOrDefault(p => p.Name.Equals(package.Name, StringComparison.OrdinalIgnoreCase) && p.Version.Equals(package.Version));
 
             await PerformPackageInstallation(package, plugin?.Manifest.Status ?? PluginStatus.Active, cancellationToken).ConfigureAwait(false);
-            _logger.LogInformation("Plugin {Action}: {PluginName} {PluginVersion}", plugin == null ? "installed" : "updated", package.Name, package.Version);
+            _logger.LogInformation("Plugin {Action}: {PluginName} {PluginVersion}", plugin is null ? "installed" : "updated", package.Name, package.Version);
 
             return plugin != null;
         }

+ 1 - 1
Jellyfin.Api/Auth/AnonymousLanAccessPolicy/AnonymousLanAccessHandler.cs

@@ -32,7 +32,7 @@ namespace Jellyfin.Api.Auth.AnonymousLanAccessPolicy
             var ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress;
 
             // Loopback will be on LAN, so we can accept null.
-            if (ip == null || _networkManager.IsInLocalNetwork(ip))
+            if (ip is null || _networkManager.IsInLocalNetwork(ip))
             {
                 context.Succeed(requirement);
             }

+ 1 - 1
Jellyfin.Api/Auth/BaseAuthorizationHandler.cs

@@ -67,7 +67,7 @@ namespace Jellyfin.Api.Auth
 
             // Ensure userId links to a valid user.
             var user = _userManager.GetUserById(userId);
-            if (user == null)
+            if (user is null)
             {
                 return false;
             }

+ 1 - 1
Jellyfin.Api/Controllers/ConfigurationController.cs

@@ -96,7 +96,7 @@ namespace Jellyfin.Api.Controllers
             var configurationType = _configurationManager.GetConfigurationType(key);
             var deserializedConfiguration = configuration.Deserialize(configurationType, _serializerOptions);
 
-            if (deserializedConfiguration == null)
+            if (deserializedConfiguration is null)
             {
                 throw new ArgumentException("Body doesn't contain a valid configuration");
             }

+ 2 - 2
Jellyfin.Api/Controllers/DashboardController.cs

@@ -76,7 +76,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult GetDashboardConfigurationPage([FromQuery] string? name)
         {
             var altPage = GetPluginPages().FirstOrDefault(p => string.Equals(p.Item1.Name, name, StringComparison.OrdinalIgnoreCase));
-            if (altPage == null)
+            if (altPage is null)
             {
                 return NotFound();
             }
@@ -84,7 +84,7 @@ namespace Jellyfin.Api.Controllers
             IPlugin plugin = altPage.Item2;
             string resourcePath = altPage.Item1.EmbeddedResourcePath;
             Stream? stream = plugin.GetType().Assembly.GetManifestResourceStream(resourcePath);
-            if (stream == null)
+            if (stream is null)
             {
                 _logger.LogError("Failed to get resource {Resource} from plugin {Plugin}", resourcePath, plugin.Name);
                 return NotFound();

+ 3 - 3
Jellyfin.Api/Controllers/DevicesController.cs

@@ -64,7 +64,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult<DeviceInfo>> GetDeviceInfo([FromQuery, Required] string id)
         {
             var deviceInfo = await _deviceManager.GetDevice(id).ConfigureAwait(false);
-            if (deviceInfo == null)
+            if (deviceInfo is null)
             {
                 return NotFound();
             }
@@ -85,7 +85,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult<DeviceOptions>> GetDeviceOptions([FromQuery, Required] string id)
         {
             var deviceInfo = await _deviceManager.GetDeviceOptions(id).ConfigureAwait(false);
-            if (deviceInfo == null)
+            if (deviceInfo is null)
             {
                 return NotFound();
             }
@@ -123,7 +123,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult> DeleteDevice([FromQuery, Required] string id)
         {
             var existingDevice = await _deviceManager.GetDevice(id).ConfigureAwait(false);
-            if (existingDevice == null)
+            if (existingDevice is null)
             {
                 return NotFound();
             }

+ 3 - 3
Jellyfin.Api/Controllers/DlnaController.cs

@@ -63,7 +63,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<DeviceProfile> GetProfile([FromRoute, Required] string profileId)
         {
             var profile = _dlnaManager.GetProfile(profileId);
-            if (profile == null)
+            if (profile is null)
             {
                 return NotFound();
             }
@@ -84,7 +84,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult DeleteProfile([FromRoute, Required] string profileId)
         {
             var existingDeviceProfile = _dlnaManager.GetProfile(profileId);
-            if (existingDeviceProfile == null)
+            if (existingDeviceProfile is null)
             {
                 return NotFound();
             }
@@ -121,7 +121,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult UpdateProfile([FromRoute, Required] string profileId, [FromBody] DeviceProfile deviceProfile)
         {
             var existingDeviceProfile = _dlnaManager.GetProfile(profileId);
-            if (existingDeviceProfile == null)
+            if (existingDeviceProfile is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/DlnaServerController.cs

@@ -274,7 +274,7 @@ namespace Jellyfin.Api.Controllers
         private ActionResult GetIconInternal(string fileName)
         {
             var icon = _dlnaManager.GetIcon(fileName);
-            if (icon == null)
+            if (icon is null)
             {
                 return NotFound();
             }

+ 5 - 5
Jellyfin.Api/Controllers/DynamicHlsController.cs

@@ -1482,7 +1482,7 @@ namespace Jellyfin.Api.Controllers
                         startTranscoding = true;
                         segmentId = 0;
                     }
-                    else if (currentTranscodingIndex == null)
+                    else if (currentTranscodingIndex is null)
                     {
                         _logger.LogDebug("Starting transcoding because currentTranscodingIndex=null");
                         startTranscoding = true;
@@ -1665,7 +1665,7 @@ namespace Jellyfin.Api.Controllers
         /// <returns>The command line arguments for audio transcoding.</returns>
         private string GetAudioArguments(StreamState state)
         {
-            if (state.AudioStream == null)
+            if (state.AudioStream is null)
             {
                 return string.Empty;
             }
@@ -1762,7 +1762,7 @@ namespace Jellyfin.Api.Controllers
         /// <returns>The command line arguments for video transcoding.</returns>
         private string GetVideoArguments(StreamState state, int startNumber, bool isEventPlaylist)
         {
-            if (state.VideoStream == null)
+            if (state.VideoStream is null)
             {
                 return string.Empty;
             }
@@ -1969,14 +1969,14 @@ namespace Jellyfin.Api.Controllers
         {
             var job = _transcodingJobHelper.GetTranscodingJob(playlist, TranscodingJobType);
 
-            if (job == null || job.HasExited)
+            if (job is null || job.HasExited)
             {
                 return null;
             }
 
             var file = GetLastTranscodingFile(playlist, segmentExtension, _fileSystem);
 
-            if (file == null)
+            if (file is null)
             {
                 return null;
             }

+ 1 - 1
Jellyfin.Api/Controllers/EnvironmentController.cs

@@ -104,7 +104,7 @@ namespace Jellyfin.Api.Controllers
 
                 if (validatePathDto.ValidateWritable)
                 {
-                    if (validatePathDto.Path == null)
+                    if (validatePathDto.Path is null)
                     {
                         throw new ResourceNotFoundException(nameof(validatePathDto.Path));
                     }

+ 1 - 1
Jellyfin.Api/Controllers/FilterController.cs

@@ -182,7 +182,7 @@ namespace Jellyfin.Api.Controllers
 
             if ((recursive ?? true) || parentItem is UserView || parentItem is ICollectionFolder)
             {
-                genreQuery.AncestorIds = parentItem == null ? Array.Empty<Guid>() : new[] { parentItem.Id };
+                genreQuery.AncestorIds = parentItem is null ? Array.Empty<Guid>() : new[] { parentItem.Id };
             }
             else
             {

+ 1 - 1
Jellyfin.Api/Controllers/HlsSegmentController.cs

@@ -167,7 +167,7 @@ namespace Jellyfin.Api.Controllers
                 }
             }
 
-            return playlistPath == null
+            return playlistPath is null
                 ? NotFound("Hls segment not found.")
                 : GetFileResult(file, playlistPath);
         }

+ 1 - 1
Jellyfin.Api/Controllers/ImageByNameController.cs

@@ -77,7 +77,7 @@ namespace Jellyfin.Api.Controllers
                 .Select(i => Path.GetFullPath(Path.Combine(_applicationPaths.GeneralPath, name, filename + i)))
                 .FirstOrDefault(System.IO.File.Exists);
 
-            if (path == null)
+            if (path is null)
             {
                 return NotFound();
             }

+ 24 - 24
Jellyfin.Api/Controllers/ImageController.cs

@@ -198,7 +198,7 @@ namespace Jellyfin.Api.Controllers
             }
 
             var user = _userManager.GetUserById(userId);
-            if (user?.ProfileImage == null)
+            if (user?.ProfileImage is null)
             {
                 return NoContent();
             }
@@ -242,7 +242,7 @@ namespace Jellyfin.Api.Controllers
             }
 
             var user = _userManager.GetUserById(userId);
-            if (user?.ProfileImage == null)
+            if (user?.ProfileImage is null)
             {
                 return NoContent();
             }
@@ -279,7 +279,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -307,7 +307,7 @@ namespace Jellyfin.Api.Controllers
             [FromRoute] int imageIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -335,7 +335,7 @@ namespace Jellyfin.Api.Controllers
             [FromRoute, Required] ImageType imageType)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -371,7 +371,7 @@ namespace Jellyfin.Api.Controllers
             [FromRoute] int imageIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -407,7 +407,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery, Required] int newIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -430,7 +430,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult<IEnumerable<ImageInfo>>> GetItemImageInfos([FromRoute, Required] Guid itemId)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -537,7 +537,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -620,7 +620,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -703,7 +703,7 @@ namespace Jellyfin.Api.Controllers
             [FromRoute, Required] int imageIndex)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -786,7 +786,7 @@ namespace Jellyfin.Api.Controllers
             [FromRoute, Required] int imageIndex)
         {
             var item = _libraryManager.GetArtist(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -869,7 +869,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetGenre(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -952,7 +952,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var item = _libraryManager.GetGenre(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1035,7 +1035,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetMusicGenre(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1118,7 +1118,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var item = _libraryManager.GetMusicGenre(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1201,7 +1201,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetPerson(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1284,7 +1284,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var item = _libraryManager.GetPerson(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1367,7 +1367,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var item = _libraryManager.GetStudio(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1450,7 +1450,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var item = _libraryManager.GetStudio(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -1533,7 +1533,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] int? imageIndex)
         {
             var user = _userManager.GetUserById(userId);
-            if (user?.ProfileImage == null)
+            if (user?.ProfileImage is null)
             {
                 return NotFound();
             }
@@ -1634,7 +1634,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? foregroundLayer)
         {
             var user = _userManager.GetUserById(userId);
-            if (user?.ProfileImage == null)
+            if (user?.ProfileImage is null)
             {
                 return NotFound();
             }
@@ -1944,10 +1944,10 @@ namespace Jellyfin.Api.Controllers
                 unplayedCount = null;
             }
 
-            if (imageInfo == null)
+            if (imageInfo is null)
             {
                 imageInfo = item?.GetImageInfo(imageType, imageIndex ?? 0);
-                if (imageInfo == null)
+                if (imageInfo is null)
                 {
                     return NotFound(string.Format(NumberFormatInfo.InvariantInfo, "{0} does not have an image of type {1}", item?.Name, imageType));
                 }

+ 1 - 1
Jellyfin.Api/Controllers/ItemLookupController.cs

@@ -65,7 +65,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<IEnumerable<ExternalIdInfo>> GetExternalIdInfos([FromRoute, Required] Guid itemId)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/ItemRefreshController.cs

@@ -61,7 +61,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] bool replaceAllImages = false)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 2 - 2
Jellyfin.Api/Controllers/ItemUpdateController.cs

@@ -71,7 +71,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult> UpdateItem([FromRoute, Required] Guid itemId, [FromBody, Required] BaseItemDto request)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -198,7 +198,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult UpdateItemContentType([FromRoute, Required] Guid itemId, [FromQuery] string? contentType)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 7 - 7
Jellyfin.Api/Controllers/LibraryController.cs

@@ -104,7 +104,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult GetFile([FromRoute, Required] Guid itemId)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -154,7 +154,7 @@ namespace Jellyfin.Api.Controllers
                     : _libraryManager.GetUserRootFolder())
                 : _libraryManager.GetItemById(itemId);
 
-            if (item == null)
+            if (item is null)
             {
                 return NotFound("Item not found.");
             }
@@ -171,7 +171,7 @@ namespace Jellyfin.Api.Controllers
                 }
 
                 var parent = item.GetParent();
-                if (parent == null)
+                if (parent is null)
                 {
                     break;
                 }
@@ -220,7 +220,7 @@ namespace Jellyfin.Api.Controllers
                     : _libraryManager.GetUserRootFolder())
                 : _libraryManager.GetItemById(itemId);
 
-            if (item == null)
+            if (item is null)
             {
                 return NotFound("Item not found.");
             }
@@ -237,7 +237,7 @@ namespace Jellyfin.Api.Controllers
                 }
 
                 var parent = item.GetParent();
-                if (parent == null)
+                if (parent is null)
                 {
                     break;
                 }
@@ -435,7 +435,7 @@ namespace Jellyfin.Api.Controllers
         {
             var item = _libraryManager.GetItemById(itemId);
 
-            if (item == null)
+            if (item is null)
             {
                 return NotFound("Item not found");
             }
@@ -610,7 +610,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult> GetDownload([FromRoute, Required] Guid itemId)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 3 - 3
Jellyfin.Api/Controllers/LiveTvController.cs

@@ -763,7 +763,7 @@ namespace Jellyfin.Api.Controllers
             await AssertUserCanManageLiveTv().ConfigureAwait(false);
 
             var item = _libraryManager.GetItemById(recordingId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -840,7 +840,7 @@ namespace Jellyfin.Api.Controllers
         public async Task<ActionResult<SeriesTimerInfoDto>> GetSeriesTimer([FromRoute, Required] string timerId)
         {
             var timer = await _liveTvManager.GetSeriesTimer(timerId, CancellationToken.None).ConfigureAwait(false);
-            if (timer == null)
+            if (timer is null)
             {
                 return NotFound();
             }
@@ -1201,7 +1201,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult GetLiveStreamFile([FromRoute, Required] string streamId, [FromRoute, Required] string container)
         {
             var liveStreamInfo = _mediaSourceManager.GetLiveStreamInfoByUniqueId(streamId);
-            if (liveStreamInfo == null)
+            if (liveStreamInfo is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/MediaInfoController.cs

@@ -121,7 +121,7 @@ namespace Jellyfin.Api.Controllers
             var profile = playbackInfoDto?.DeviceProfile;
             _logger.LogDebug("GetPostedPlaybackInfo profile: {@Profile}", profile);
 
-            if (profile == null)
+            if (profile is null)
             {
                 var caps = _deviceManager.GetCapabilities(User.GetDeviceId());
                 if (caps != null)

+ 2 - 2
Jellyfin.Api/Controllers/PackageController.cs

@@ -54,7 +54,7 @@ namespace Jellyfin.Api.Controllers
                     assemblyGuid ?? default)
                 .FirstOrDefault();
 
-            if (result == null)
+            if (result is null)
             {
                 return NotFound();
             }
@@ -110,7 +110,7 @@ namespace Jellyfin.Api.Controllers
                     specificVersion: string.IsNullOrEmpty(version) ? null : Version.Parse(version))
                 .FirstOrDefault();
 
-            if (package == null)
+            if (package is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/PersonsController.cs

@@ -122,7 +122,7 @@ namespace Jellyfin.Api.Controllers
                 .AddClientFields(User);
 
             var item = _libraryManager.GetPerson(name);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/PlaylistsController.cs

@@ -176,7 +176,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery, ModelBinder(typeof(CommaDelimitedArrayModelBinder))] ImageType[] enableImageTypes)
         {
             var playlist = (Playlist)_libraryManager.GetItemById(playlistId);
-            if (playlist == null)
+            if (playlist is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/PlaystateController.cs

@@ -353,7 +353,7 @@ namespace Jellyfin.Api.Controllers
             if (method == PlayMethod.Transcode)
             {
                 var job = string.IsNullOrWhiteSpace(playSessionId) ? null : _transcodingJobHelper.GetTranscodingJob(playSessionId);
-                if (job == null)
+                if (job is null)
                 {
                     return PlayMethod.DirectPlay;
                 }

+ 6 - 6
Jellyfin.Api/Controllers/PluginsController.cs

@@ -71,7 +71,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult EnablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
         {
             var plugin = _pluginManager.GetPlugin(pluginId, version);
-            if (plugin == null)
+            if (plugin is null)
             {
                 return NotFound();
             }
@@ -95,7 +95,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult DisablePlugin([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
         {
             var plugin = _pluginManager.GetPlugin(pluginId, version);
-            if (plugin == null)
+            if (plugin is null)
             {
                 return NotFound();
             }
@@ -119,7 +119,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult UninstallPluginByVersion([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
         {
             var plugin = _pluginManager.GetPlugin(pluginId, version);
-            if (plugin == null)
+            if (plugin is null)
             {
                 return NotFound();
             }
@@ -146,7 +146,7 @@ namespace Jellyfin.Api.Controllers
             var plugins = _pluginManager.Plugins.Where(p => p.Id.Equals(pluginId));
 
             // Select the un-instanced one first.
-            var plugin = plugins.FirstOrDefault(p => p.Instance == null) ?? plugins.OrderBy(p => p.Manifest.Status).FirstOrDefault();
+            var plugin = plugins.FirstOrDefault(p => p.Instance is null) ?? plugins.OrderBy(p => p.Manifest.Status).FirstOrDefault();
 
             if (plugin != null)
             {
@@ -225,13 +225,13 @@ namespace Jellyfin.Api.Controllers
         public ActionResult GetPluginImage([FromRoute, Required] Guid pluginId, [FromRoute, Required] Version version)
         {
             var plugin = _pluginManager.GetPlugin(pluginId, version);
-            if (plugin == null)
+            if (plugin is null)
             {
                 return NotFound();
             }
 
             var imagePath = Path.Combine(plugin.Path, plugin.Manifest.ImagePath ?? string.Empty);
-            if (plugin.Manifest.ImagePath == null || !System.IO.File.Exists(imagePath))
+            if (plugin.Manifest.ImagePath is null || !System.IO.File.Exists(imagePath))
             {
                 return NotFound();
             }

+ 3 - 3
Jellyfin.Api/Controllers/RemoteImageController.cs

@@ -68,7 +68,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] bool includeAllLanguages = false)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -127,7 +127,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<IEnumerable<ImageProviderInfo>> GetRemoteImageProviders([FromRoute, Required] Guid itemId)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }
@@ -154,7 +154,7 @@ namespace Jellyfin.Api.Controllers
             [FromQuery] string? imageUrl)
         {
             var item = _libraryManager.GetItemById(itemId);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 4 - 4
Jellyfin.Api/Controllers/ScheduledTasksController.cs

@@ -76,7 +76,7 @@ namespace Jellyfin.Api.Controllers
             var task = _taskManager.ScheduledTasks.FirstOrDefault(i =>
                 string.Equals(i.Id, taskId, StringComparison.OrdinalIgnoreCase));
 
-            if (task == null)
+            if (task is null)
             {
                 return NotFound();
             }
@@ -99,7 +99,7 @@ namespace Jellyfin.Api.Controllers
             var task = _taskManager.ScheduledTasks.FirstOrDefault(o =>
                 o.Id.Equals(taskId, StringComparison.OrdinalIgnoreCase));
 
-            if (task == null)
+            if (task is null)
             {
                 return NotFound();
             }
@@ -123,7 +123,7 @@ namespace Jellyfin.Api.Controllers
             var task = _taskManager.ScheduledTasks.FirstOrDefault(o =>
                 o.Id.Equals(taskId, StringComparison.OrdinalIgnoreCase));
 
-            if (task == null)
+            if (task is null)
             {
                 return NotFound();
             }
@@ -149,7 +149,7 @@ namespace Jellyfin.Api.Controllers
         {
             var task = _taskManager.ScheduledTasks.FirstOrDefault(o =>
                 o.Id.Equals(taskId, StringComparison.OrdinalIgnoreCase));
-            if (task == null)
+            if (task is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/SearchController.cs

@@ -221,7 +221,7 @@ namespace Jellyfin.Api.Controllers
         {
             var itemWithImage = item.HasImage(ImageType.Thumb) ? item : null;
 
-            if (itemWithImage == null && item is Episode)
+            if (itemWithImage is null && item is Episode)
             {
                 itemWithImage = GetParentWithImage<Series>(item, ImageType.Thumb);
             }

+ 1 - 1
Jellyfin.Api/Controllers/SessionController.cs

@@ -294,7 +294,7 @@ namespace Jellyfin.Api.Controllers
         {
             var currentSession = await RequestHelpers.GetSession(_sessionManager, _userManager, HttpContext).ConfigureAwait(false);
 
-            if (command == null)
+            if (command is null)
             {
                 throw new ArgumentException("Request body may not be null");
             }

+ 1 - 1
Jellyfin.Api/Controllers/SubtitleController.cs

@@ -96,7 +96,7 @@ namespace Jellyfin.Api.Controllers
         {
             var item = _libraryManager.GetItemById(itemId);
 
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/TvShowsController.cs

@@ -247,7 +247,7 @@ namespace Jellyfin.Api.Controllers
                     .GetSeasons(user, dtoOptions)
                     .FirstOrDefault(i => i.IndexNumber == season.Value);
 
-                episodes = seasonItem == null ?
+                episodes = seasonItem is null ?
                     new List<BaseItem>()
                     : ((Season)seasonItem).GetEpisodes(user, dtoOptions);
             }

+ 6 - 6
Jellyfin.Api/Controllers/UserController.cs

@@ -124,7 +124,7 @@ namespace Jellyfin.Api.Controllers
         {
             var user = _userManager.GetUserById(userId);
 
-            if (user == null)
+            if (user is null)
             {
                 return NotFound("User not found");
             }
@@ -173,7 +173,7 @@ namespace Jellyfin.Api.Controllers
         {
             var user = _userManager.GetUserById(userId);
 
-            if (user == null)
+            if (user is null)
             {
                 return NotFound("User not found");
             }
@@ -272,7 +272,7 @@ namespace Jellyfin.Api.Controllers
 
             var user = _userManager.GetUserById(userId);
 
-            if (user == null)
+            if (user is null)
             {
                 return NotFound("User not found");
             }
@@ -292,7 +292,7 @@ namespace Jellyfin.Api.Controllers
                         HttpContext.GetNormalizedRemoteIp().ToString(),
                         false).ConfigureAwait(false);
 
-                    if (success == null)
+                    if (success is null)
                     {
                         return StatusCode(StatusCodes.Status403Forbidden, "Invalid user or password entered.");
                     }
@@ -333,7 +333,7 @@ namespace Jellyfin.Api.Controllers
 
             var user = _userManager.GetUserById(userId);
 
-            if (user == null)
+            if (user is null)
             {
                 return NotFound("User not found");
             }
@@ -544,7 +544,7 @@ namespace Jellyfin.Api.Controllers
             }
 
             var user = _userManager.GetUserById(userId);
-            if (user == null)
+            if (user is null)
             {
                 return BadRequest();
             }

+ 2 - 2
Jellyfin.Api/Controllers/UserLibraryController.cs

@@ -402,7 +402,7 @@ namespace Jellyfin.Api.Controllers
         {
             var user = _userManager.GetUserById(userId);
 
-            if (user == null)
+            if (user is null)
             {
                 return NotFound();
             }
@@ -411,7 +411,7 @@ namespace Jellyfin.Api.Controllers
                 ? _libraryManager.GetUserRootFolder()
                 : _libraryManager.GetItemById(itemId);
 
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/UserViewsController.cs

@@ -117,7 +117,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<IEnumerable<SpecialViewOptionDto>> GetGroupingOptions([FromRoute, Required] Guid userId)
         {
             var user = _userManager.GetUserById(userId);
-            if (user == null)
+            if (user is null)
             {
                 return NotFound();
             }

+ 1 - 1
Jellyfin.Api/Controllers/VideoAttachmentsController.cs

@@ -55,7 +55,7 @@ namespace Jellyfin.Api.Controllers
             try
             {
                 var item = _libraryManager.GetItemById(videoId);
-                if (item == null)
+                if (item is null)
                 {
                     return NotFound();
                 }

+ 3 - 3
Jellyfin.Api/Controllers/VideosController.cs

@@ -149,7 +149,7 @@ namespace Jellyfin.Api.Controllers
         {
             var video = (Video)_libraryManager.GetItemById(itemId);
 
-            if (video == null)
+            if (video is null)
             {
                 return NotFound("The video either does not exist or the id does not belong to a video.");
             }
@@ -199,7 +199,7 @@ namespace Jellyfin.Api.Controllers
             }
 
             var primaryVersion = items.FirstOrDefault(i => i.MediaSourceCount > 1 && string.IsNullOrEmpty(i.PrimaryVersionId));
-            if (primaryVersion == null)
+            if (primaryVersion is null)
             {
                 primaryVersion = items
                     .OrderBy(i =>
@@ -444,7 +444,7 @@ namespace Jellyfin.Api.Controllers
                 StreamingHelpers.AddDlnaHeaders(state, Response.Headers, true, state.Request.StartTimeTicks, Request, _dlnaManager);
 
                 var liveStreamInfo = _mediaSourceManager.GetLiveStreamInfo(streamingRequest.LiveStreamId);
-                if (liveStreamInfo == null)
+                if (liveStreamInfo is null)
                 {
                     return NotFound();
                 }

+ 1 - 1
Jellyfin.Api/Controllers/YearsController.cs

@@ -173,7 +173,7 @@ namespace Jellyfin.Api.Controllers
         public ActionResult<BaseItemDto> GetYear([FromRoute, Required] int year, [FromQuery] Guid? userId)
         {
             var item = _libraryManager.GetYear(year);
-            if (item == null)
+            if (item is null)
             {
                 return NotFound();
             }

+ 2 - 2
Jellyfin.Api/Helpers/AudioHelper.cs

@@ -85,7 +85,7 @@ namespace Jellyfin.Api.Helpers
             TranscodingJobType transcodingJobType,
             StreamingRequestDto streamingRequest)
         {
-            if (_httpContextAccessor.HttpContext == null)
+            if (_httpContextAccessor.HttpContext is null)
             {
                 throw new ResourceNotFoundException(nameof(_httpContextAccessor.HttpContext));
             }
@@ -116,7 +116,7 @@ namespace Jellyfin.Api.Helpers
                 StreamingHelpers.AddDlnaHeaders(state, _httpContextAccessor.HttpContext.Response.Headers, true, streamingRequest.StartTimeTicks, _httpContextAccessor.HttpContext.Request, _dlnaManager);
 
                 var liveStreamInfo = _mediaSourceManager.GetLiveStreamInfo(streamingRequest.LiveStreamId);
-                if (liveStreamInfo == null)
+                if (liveStreamInfo is null)
                 {
                     throw new FileNotFoundException();
                 }

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov