using FastEndpoints; using MediatR; using Workflow.Application.Features.WorkflowInstances.Commands; namespace Workflow.Api.Endpoints.WorkflowInstance; public class ResumeWorkflowInstanceEndpoint : Endpoint { private readonly IMediator _mediator; public ResumeWorkflowInstanceEndpoint(IMediator mediator) => _mediator = mediator; public override void Configure() { Post("/workflow-instances/{Id}/resume"); AllowAnonymous(); Summary(s => { s.Summary = "Resume a suspended workflow instance"; }); } public override async Task HandleAsync(ResumeWorkflowInstanceRequest req, CancellationToken ct) { var command = new ResumeWorkflowInstanceCommand(req.Id); await _mediator.Send(command, ct); await Send.OkAsync(ct); } } public class ResumeWorkflowInstanceRequest { public Guid Id { get; set; } }