From e893ca4f1c6bf7cbf01b6a9e8552c8ae6f5034ac Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Tue, 3 Sep 2024 10:19:28 -0500 Subject: [PATCH] Support validation of collections in RestController --- src/Sonarr.Http/REST/RestController.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Sonarr.Http/REST/RestController.cs b/src/Sonarr.Http/REST/RestController.cs index 7632d8b7f..e08790a45 100644 --- a/src/Sonarr.Http/REST/RestController.cs +++ b/src/Sonarr.Http/REST/RestController.cs @@ -70,11 +70,15 @@ public override void OnActionExecuting(ActionExecutingContext context) var skipValidate = skipAttribute?.Skip ?? false; var skipShared = skipAttribute?.SkipShared ?? false; - if (Request.Method == "POST" || Request.Method == "PUT") + if (Request.Method is "POST" or "PUT") { - var resourceArgs = context.ActionArguments.Values.Where(x => x.GetType() == typeof(TResource)) - .Select(x => x as TResource) - .ToList(); + var resourceArgs = context.ActionArguments.Values + .SelectMany(x => x switch + { + TResource single => new[] { single }, + IEnumerable multiple => multiple, + _ => Enumerable.Empty() + }); foreach (var resource in resourceArgs) {