From 9bb5c97df65894b45a14f192a6598505186156c1 Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 16 Apr 2026 10:02:34 +0200 Subject: [PATCH] Require non-null References for batch rec action invoke Enforce non-nullable References in RecActionController and InvokeBatchRecActionViewsCommand. Update tests to always provide References and add missing using directive. Improves type safety and ensures consistent reference handling. --- src/ReC.API/Controllers/RecActionController.cs | 2 +- .../RecActions/Commands/InvokeBatchRecActionViewsCommand.cs | 2 +- tests/ReC.Tests/Application/Results/ResultProcedureTests.cs | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ReC.API/Controllers/RecActionController.cs b/src/ReC.API/Controllers/RecActionController.cs index 2609cce..f158983 100644 --- a/src/ReC.API/Controllers/RecActionController.cs +++ b/src/ReC.API/Controllers/RecActionController.cs @@ -19,7 +19,7 @@ public class RecActionController(IMediator mediator) : ControllerBase /// An HTTP 202 Accepted response indicating the process has been started. [HttpPost("invoke/{profileId}")] [ProducesResponseType(StatusCodes.Status202Accepted)] - public async Task Invoke([FromRoute] long profileId, [FromBody] InvokeReferences? references = null, CancellationToken cancel = default) + public async Task Invoke([FromRoute] long profileId, [FromBody] InvokeReferences references, CancellationToken cancel = default) { await mediator.Send(new InvokeBatchRecActionViewsCommand { diff --git a/src/ReC.Application/RecActions/Commands/InvokeBatchRecActionViewsCommand.cs b/src/ReC.Application/RecActions/Commands/InvokeBatchRecActionViewsCommand.cs index 96667d9..c44e927 100644 --- a/src/ReC.Application/RecActions/Commands/InvokeBatchRecActionViewsCommand.cs +++ b/src/ReC.Application/RecActions/Commands/InvokeBatchRecActionViewsCommand.cs @@ -9,7 +9,7 @@ namespace ReC.Application.RecActions.Commands; public record InvokeBatchRecActionViewsCommand : IRequest { public long ProfileId { get; init; } - public InvokeReferences? References { get; init; } + public required InvokeReferences References { get; init; } } public class InvokeRecActionViewsCommandHandler(ISender sender, ILogger? logger = null) : IRequestHandler diff --git a/tests/ReC.Tests/Application/Results/ResultProcedureTests.cs b/tests/ReC.Tests/Application/Results/ResultProcedureTests.cs index 9839b52..36016ce 100644 --- a/tests/ReC.Tests/Application/Results/ResultProcedureTests.cs +++ b/tests/ReC.Tests/Application/Results/ResultProcedureTests.cs @@ -6,6 +6,7 @@ using NUnit.Framework; using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.UpdateProcedure; +using ReC.Application.RecActions.Commands; using ReC.Application.Results.Commands; using ReC.Domain.Constants; using ReC.Tests.Application; @@ -25,7 +26,7 @@ public class ResultProcedureTests : RecApplicationTestBase [Test] public async Task InsertResultProcedure_runs_via_mediator() { - var procedure = new InsertResultCommand { ActionId = 1, Status = HttpStatusCode.OK.ToRecStatus(), Header = "h", Body = "b", Info = 200, Type = Domain.Constants.ResultType.Main }; + var procedure = new InsertResultCommand { ActionId = 1, Status = HttpStatusCode.OK.ToRecStatus(), Header = "h", Body = "b", Info = 200, Type = ResultType.Main, References = new () { BatchId = DateTime.Now.ToString() } }; var (sender, scope) = CreateScopedSender(); using var _ = scope;