C#C
C#3w ago
Alex

✅ DbContext lock up application

Controller
[ApiController]
[Route("api/v1/example")]
public class ExampleController(ISender sender) : ControllerBase
{
    [HttpPost]
    public async Task<IActionResult> Post([FromBody] ExampleRequest request)
    {
        var command = new SendExampleMessageCommand(request.Message);

        Result<ExampleMessageResponse> result = await sender.Send(command);

        return result.Match(
            value => Ok(value),
            ActionResults.Problem
        );
    }
}


Handler

internal sealed class
    SendExampleMessageCommandHandler(IApplicationDbContext dbContext, IDateTimeProvider dateTimeProvider)
    : ICommandHandler<SendExampleMessageCommand, ExampleMessageResponse>
{
    public async Task<Result<ExampleMessageResponse>> Handle(SendExampleMessageCommand request,
        CancellationToken cancellationToken)
    {
        var example = Domain.Example.Example.Create(Guid.NewGuid(), request.Message, dateTimeProvider.UtcNow);

        dbContext.Examples.Add(example);

        await dbContext.SaveChangesAsync(cancellationToken);

        return Result.Success(new ExampleMessageResponse(example.Id, example.Message, example.CreatedAtUtc));
    }
}


I tried to put debug points and it freezes at line in Controller

        Result<ExampleMessageResponse> result = await sender.Send(command);
Was this page helpful?