using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using OpenHarbor.CQRS.Abstractions; namespace OpenHarbor.CQRS.AspNetCore.Mvc; [Produces("application/json")] [ApiController, Route("api/command/[controller]")] public class CommandController : Controller where TCommand : class { [HttpPost, CommandControllerAuthorization] public async Task Handle([FromServices] ICommandHandler handler, [FromBody] TCommand command) { if (!ModelState.IsValid) return BadRequest(ModelState); await handler.HandleAsync(command, this.Request.HttpContext.RequestAborted); return Ok(); } } [Produces("application/json")] [ApiController, Route("api/command/[controller]")] public class CommandController : Controller where TCommand : class { [HttpPost, CommandControllerAuthorization] public async Task> Handle([FromServices] ICommandHandler handler, [FromBody] TCommand command) { if (!ModelState.IsValid) return BadRequest(ModelState); return Ok(await handler.HandleAsync(command, this.Request.HttpContext.RequestAborted)); } }