From 561eafe48c5f9ecb64fb66a655d4576ced94e109 Mon Sep 17 00:00:00 2001 From: TekH Date: Tue, 24 Mar 2026 11:04:41 +0100 Subject: [PATCH] Refactor ProfileController to use MediatR Send method Replaces custom Execute*Procedure methods with MediatR's Send for insert, update, and delete operations. Removes obsolete using directives. Updates the PUT endpoint to accept the profile ID in the request body instead of the route. --- src/ReC.API/Controllers/ProfileController.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/ReC.API/Controllers/ProfileController.cs b/src/ReC.API/Controllers/ProfileController.cs index 6442399..761d166 100644 --- a/src/ReC.API/Controllers/ProfileController.cs +++ b/src/ReC.API/Controllers/ProfileController.cs @@ -1,8 +1,5 @@ using MediatR; using Microsoft.AspNetCore.Mvc; -using ReC.Application.Common.Procedures.DeleteProcedure; -using ReC.Application.Common.Procedures.InsertProcedure; -using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Profile.Commands; using ReC.Application.Profile.Queries; @@ -28,22 +25,21 @@ public class ProfileController(IMediator mediator) : ControllerBase [ProducesResponseType(StatusCodes.Status201Created)] public async Task Post([FromBody] InsertProfileProcedure procedure, CancellationToken cancel) { - var id = await mediator.ExecuteInsertProcedure(procedure, cancel: cancel); + var id = await mediator.Send(procedure, cancel); return CreatedAtAction(nameof(Get), new { id }, id); } /// /// Updates a profile via the PROFILE update procedure. /// - /// Profile identifier to update. /// UpdateProfileProcedure payload. /// A token to cancel the operation. /// No content on success. - [HttpPut("{id:long}")] + [HttpPut] [ProducesResponseType(StatusCodes.Status204NoContent)] - public async Task Put([FromRoute] long id, [FromBody] UpdateProfileProcedure procedure, CancellationToken cancel) + public async Task Put([FromBody] UpdateProfileProcedure procedure, CancellationToken cancel) { - await mediator.ExecuteUpdateProcedure(procedure, id, cancel: cancel); + await mediator.Send(procedure, cancel); return NoContent(); } @@ -57,7 +53,7 @@ public class ProfileController(IMediator mediator) : ControllerBase [ProducesResponseType(StatusCodes.Status204NoContent)] public async Task Delete([FromBody] DeleteProfileProcedure procedure, CancellationToken cancel) { - await mediator.ExecuteDeleteProcedure(procedure, cancel); + await mediator.Send(procedure, cancel); return NoContent(); } } \ No newline at end of file