diff --git a/src/Readarr.Api.V1/ManualImport/ManualImportModule.cs b/src/Readarr.Api.V1/ManualImport/ManualImportModule.cs index c9aa4fc0a..6933d7cf1 100644 --- a/src/Readarr.Api.V1/ManualImport/ManualImportModule.cs +++ b/src/Readarr.Api.V1/ManualImport/ManualImportModule.cs @@ -47,15 +47,11 @@ private List GetMediaFiles() var downloadId = (string)Request.Query.downloadId; NzbDrone.Core.Books.Author author = null; - var authorIdQuery = Request.Query.authorId; - if (authorIdQuery.HasValue) - { - var authorId = Convert.ToInt32(authorIdQuery.Value); + var authorIdQuery = Request.GetNullableIntegerQueryParameter("authorId", null); - if (authorId > 0) - { - author = _authorService.GetAuthor(authorId); - } + if (authorIdQuery.HasValue && authorIdQuery.Value > 0) + { + author = _authorService.GetAuthor(Convert.ToInt32(authorIdQuery.Value)); } var filter = Request.GetBooleanQueryParameter("filterExistingFiles", true) ? FilterFilesType.Matched : FilterFilesType.None; diff --git a/src/Readarr.Http/Extensions/RequestExtensions.cs b/src/Readarr.Http/Extensions/RequestExtensions.cs index 21da78d99..a82b2c133 100644 --- a/src/Readarr.Http/Extensions/RequestExtensions.cs +++ b/src/Readarr.Http/Extensions/RequestExtensions.cs @@ -66,5 +66,29 @@ public static int GetIntegerQueryParameter(this Request request, string paramete return defaultValue; } + + public static Guid GetGuidQueryParameter(this Request request, string parameter, Guid defaultValue = default) + { + var parameterValue = request.Query[parameter]; + + if (parameterValue.HasValue) + { + return Guid.Parse(parameterValue.Value); + } + + return defaultValue; + } + + public static int? GetNullableIntegerQueryParameter(this Request request, string parameter, int? defaultValue = null) + { + var parameterValue = request.Query[parameter]; + + if (parameterValue.HasValue) + { + return int.Parse(parameterValue.Value); + } + + return defaultValue; + } } }