Browse Source

Use null coalescing when possible

crobibero 4 years ago
parent
commit
95ebb9a55a

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

@@ -50,11 +50,7 @@ namespace Emby.Server.Implementations.AppBase
             // If the file didn't exist before, or if something has changed, re-save
             if (buffer == null || !newBytes.AsSpan(0, newBytesLen).SequenceEqual(buffer))
             {
-                var directory = Path.GetDirectoryName(path);
-                if (directory == null)
-                {
-                    throw new ResourceNotFoundException(nameof(directory));
-                }
+                var directory = Path.GetDirectoryName(path) ?? throw new ResourceNotFoundException(nameof(path));
 
                 Directory.CreateDirectory(directory);
                 // Save it after load in case we got new items

+ 1 - 6
Emby.Server.Implementations/Cryptography/CryptographyProvider.cs

@@ -81,12 +81,7 @@ namespace Emby.Server.Implementations.Cryptography
                 throw new CryptographicException($"Requested hash method is not supported: {hashMethod}");
             }
 
-            using var h = HashAlgorithm.Create(hashMethod);
-            if (h == null)
-            {
-                throw new ResourceNotFoundException(nameof(h));
-            }
-
+            using var h = HashAlgorithm.Create(hashMethod) ?? throw new ResourceNotFoundException(nameof(hashMethod));
             if (salt.Length == 0)
             {
                 return h.ComputeHash(bytes);

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

@@ -58,12 +58,7 @@ namespace Emby.Server.Implementations.Session
 
         private void OnConnectionClosed(object? sender, EventArgs e)
         {
-            if (sender == null)
-            {
-                throw new ResourceNotFoundException(nameof(sender));
-            }
-
-            var connection = (IWebSocketConnection)sender;
+            var connection = sender as IWebSocketConnection ?? throw new ResourceNotFoundException(nameof(sender));
             _logger.LogDebug("Removing websocket from session {Session}", _session.Id);
             _sockets.Remove(connection);
             connection.Closed -= OnConnectionClosed;

+ 2 - 11
Jellyfin.Api/Controllers/DynamicHlsController.cs

@@ -1348,11 +1348,7 @@ namespace Jellyfin.Api.Controllers
 
             var mapArgs = state.IsOutputVideo ? _encodingHelper.GetMapArgs(state) : string.Empty;
 
-            var directory = Path.GetDirectoryName(outputPath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
+            var directory = Path.GetDirectoryName(outputPath) ?? throw new ResourceNotFoundException(nameof(outputPath));
 
             var outputTsArg = Path.Combine(directory, Path.GetFileNameWithoutExtension(outputPath)) + "%d" + GetSegmentFileExtension(state.Request.SegmentContainer);
 
@@ -1572,12 +1568,7 @@ namespace Jellyfin.Api.Controllers
 
         private string GetSegmentPath(StreamState state, string playlist, int index)
         {
-            var folder = Path.GetDirectoryName(playlist);
-            if (folder == null)
-            {
-                throw new ResourceNotFoundException(nameof(folder));
-            }
-
+            var folder = Path.GetDirectoryName(playlist) ?? throw new ResourceNotFoundException(nameof(playlist));
             var filename = Path.GetFileNameWithoutExtension(playlist);
 
             return Path.Combine(folder, filename + index.ToString(CultureInfo.InvariantCulture) + GetSegmentFileExtension(state.Request.SegmentContainer));

+ 2 - 6
Jellyfin.Api/Controllers/HlsSegmentController.cs

@@ -135,12 +135,8 @@ namespace Jellyfin.Api.Controllers
             var playlistPath = _fileSystem.GetFilePaths(transcodeFolderPath)
                 .FirstOrDefault(i =>
                     string.Equals(Path.GetExtension(i), ".m3u8", StringComparison.OrdinalIgnoreCase)
-                    && i.IndexOf(normalizedPlaylistId, StringComparison.OrdinalIgnoreCase) != -1);
-
-            if (playlistPath == null)
-            {
-                throw new ResourceNotFoundException(nameof(playlistPath));
-            }
+                    && i.IndexOf(normalizedPlaylistId, StringComparison.OrdinalIgnoreCase) != -1)
+                ?? throw new ResourceNotFoundException(nameof(transcodeFolderPath));
 
             return GetFileResult(file, playlistPath);
         }

+ 2 - 11
Jellyfin.Api/Controllers/ItemLookupController.cs

@@ -342,12 +342,7 @@ namespace Jellyfin.Api.Controllers
             var ext = result.Content.Headers.ContentType.MediaType.Split('/')[^1];
             var fullCachePath = GetFullCachePath(urlHash + "." + ext);
 
-            var directory = Path.GetDirectoryName(fullCachePath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(fullCachePath) ?? throw new ResourceNotFoundException(nameof(fullCachePath));
             Directory.CreateDirectory(directory);
             using (var stream = result.Content)
             {
@@ -362,11 +357,7 @@ namespace Jellyfin.Api.Controllers
                 await stream.CopyToAsync(fileStream).ConfigureAwait(false);
             }
 
-            var pointerCacheDirectory = Path.GetDirectoryName(pointerCachePath);
-            if (pointerCacheDirectory == null)
-            {
-                throw new ResourceNotFoundException(nameof(pointerCacheDirectory));
-            }
+            var pointerCacheDirectory = Path.GetDirectoryName(pointerCachePath) ?? throw new ResourceNotFoundException(nameof(pointerCachePath));
 
             Directory.CreateDirectory(pointerCacheDirectory);
             await System.IO.File.WriteAllTextAsync(pointerCachePath, fullCachePath).ConfigureAwait(false);

+ 2 - 12
Jellyfin.Api/Controllers/RemoteImageController.cs

@@ -257,22 +257,12 @@ namespace Jellyfin.Api.Controllers
             var ext = response.Content.Headers.ContentType.MediaType.Split('/').Last();
             var fullCachePath = GetFullCachePath(urlHash + "." + ext);
 
-            var fullCacheDirectory = Path.GetDirectoryName(fullCachePath);
-            if (fullCacheDirectory == null)
-            {
-                throw new ResourceNotFoundException(nameof(fullCacheDirectory));
-            }
-
+            var fullCacheDirectory = Path.GetDirectoryName(fullCachePath) ?? throw new ResourceNotFoundException(nameof(fullCachePath));
             Directory.CreateDirectory(fullCacheDirectory);
             await using var fileStream = new FileStream(fullCachePath, FileMode.Create, FileAccess.Write, FileShare.Read, IODefaults.FileStreamBufferSize, true);
             await response.Content.CopyToAsync(fileStream).ConfigureAwait(false);
 
-            var pointerCacheDirectory = Path.GetDirectoryName(pointerCachePath);
-            if (pointerCacheDirectory == null)
-            {
-                throw new ResourceNotFoundException(nameof(pointerCacheDirectory));
-            }
-
+            var pointerCacheDirectory = Path.GetDirectoryName(pointerCachePath) ?? throw new ResourceNotFoundException(nameof(pointerCachePath));
             Directory.CreateDirectory(pointerCacheDirectory);
             await System.IO.File.WriteAllTextAsync(pointerCachePath, fullCachePath, CancellationToken.None)
                 .ConfigureAwait(false);

+ 1 - 6
Jellyfin.Api/Controllers/VideoHlsController.cs

@@ -362,12 +362,7 @@ namespace Jellyfin.Api.Controllers
             var threads = _encodingHelper.GetNumberOfThreads(state, _encodingOptions, videoCodec);
             var inputModifier = _encodingHelper.GetInputModifier(state, _encodingOptions);
             var format = !string.IsNullOrWhiteSpace(state.Request.SegmentContainer) ? "." + state.Request.SegmentContainer : ".ts";
-            var directory = Path.GetDirectoryName(outputPath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(outputPath) ?? throw new ResourceNotFoundException(nameof(outputPath));
             var outputTsArg = Path.Combine(directory, Path.GetFileNameWithoutExtension(outputPath)) + "%d" + format;
 
             var segmentFormat = format.TrimStart('.');

+ 2 - 5
Jellyfin.Api/Helpers/HlsHelpers.cs

@@ -45,11 +45,8 @@ namespace Jellyfin.Api.Helpers
 
                         while (!reader.EndOfStream)
                         {
-                            var line = await reader.ReadLineAsync().ConfigureAwait(false);
-                            if (line == null)
-                            {
-                                throw new ResourceNotFoundException(nameof(line));
-                            }
+                            var line = await reader.ReadLineAsync().ConfigureAwait(false)
+                                ?? throw new ResourceNotFoundException(nameof(reader));
 
                             if (line.IndexOf("#EXTINF:", StringComparison.OrdinalIgnoreCase) != -1)
                             {

+ 2 - 12
Jellyfin.Api/Helpers/TranscodingJobHelper.cs

@@ -196,12 +196,7 @@ namespace Jellyfin.Api.Helpers
         /// <param name="state">The state.</param>
         private async void OnTranscodeKillTimerStopped(object? state)
         {
-            var job = (TranscodingJobDto?)state;
-            if (job == null)
-            {
-                throw new ResourceNotFoundException(nameof(job));
-            }
-
+            var job = state as TranscodingJobDto ?? throw new ResourceNotFoundException(nameof(state));
             if (!job.HasExited && job.Type != TranscodingJobType.Progressive)
             {
                 var timeSinceLastPing = (DateTime.UtcNow - job.LastPingDate).TotalMilliseconds;
@@ -494,12 +489,7 @@ namespace Jellyfin.Api.Helpers
             CancellationTokenSource cancellationTokenSource,
             string? workingDirectory = null)
         {
-            var directory = Path.GetDirectoryName(outputPath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(outputPath) ?? throw new ResourceNotFoundException(nameof(outputPath));
             Directory.CreateDirectory(directory);
 
             await AcquireResources(state, cancellationTokenSource).ConfigureAwait(false);

+ 3 - 18
Jellyfin.Drawing.Skia/SkiaEncoder.cs

@@ -228,12 +228,7 @@ namespace Jellyfin.Drawing.Skia
             }
 
             var tempPath = Path.Combine(_appPaths.TempDirectory, Guid.NewGuid() + Path.GetExtension(path));
-            var directory = Path.GetDirectoryName(tempPath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(tempPath) ?? throw new ResourceNotFoundException(nameof(tempPath));
             Directory.CreateDirectory(directory);
             File.Copy(path, tempPath, true);
 
@@ -499,12 +494,7 @@ namespace Jellyfin.Drawing.Skia
             // If all we're doing is resizing then we can stop now
             if (!hasBackgroundColor && !hasForegroundColor && blur == 0 && !hasIndicator)
             {
-                var outputDirectory = Path.GetDirectoryName(outputPath);
-                if (outputDirectory == null)
-                {
-                    throw new ResourceNotFoundException(nameof(outputDirectory));
-                }
-
+                var outputDirectory = Path.GetDirectoryName(outputPath) ?? throw new ResourceNotFoundException(nameof(outputPath));
                 Directory.CreateDirectory(outputDirectory);
                 using var outputStream = new SKFileWStream(outputPath);
                 using var pixmap = new SKPixmap(new SKImageInfo(width, height), resizedBitmap.GetPixels());
@@ -552,12 +542,7 @@ namespace Jellyfin.Drawing.Skia
                 DrawIndicator(canvas, width, height, options);
             }
 
-            var directory = Path.GetDirectoryName(outputPath);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(outputPath) ?? throw new ResourceNotFoundException(nameof(outputPath));
             Directory.CreateDirectory(directory);
             using (var outputStream = new SKFileWStream(outputPath))
             {

+ 2 - 6
Jellyfin.Server.Implementations/Users/DefaultPasswordResetProvider.cs

@@ -57,12 +57,8 @@ namespace Jellyfin.Server.Implementations.Users
                 SerializablePasswordReset? spr;
                 await using (var str = File.OpenRead(resetFile))
                 {
-                    spr = await JsonSerializer.DeserializeAsync<SerializablePasswordReset>(str).ConfigureAwait(false);
-                }
-
-                if (spr == null)
-                {
-                    throw new ResourceNotFoundException(nameof(spr));
+                    spr = await JsonSerializer.DeserializeAsync<SerializablePasswordReset>(str).ConfigureAwait(false)
+                        ?? throw new ResourceNotFoundException(nameof(spr));
                 }
 
                 if (spr.ExpirationDate < DateTime.UtcNow)

+ 1 - 6
MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs

@@ -128,12 +128,7 @@ namespace MediaBrowser.LocalMetadata.Savers
 
         private void SaveToFile(Stream stream, string path)
         {
-            var directory = Path.GetDirectoryName(path);
-            if (directory == null)
-            {
-                throw new ResourceNotFoundException(nameof(directory));
-            }
-
+            var directory = Path.GetDirectoryName(path) ?? throw new ResourceNotFoundException(nameof(path));
             Directory.CreateDirectory(directory);
             // On Windows, savint the file will fail if the file is hidden or readonly
             FileSystem.SetAttributes(path, false, false);