protected override async Task ExecuteAsync(CancellationToken token) { consumer.Start(); while (!token.IsCancellationRequested) { var message = await consumer.ConsumeAsync(token).ConfigureAwait(false); var requestLogger = logger .WithScope("MessageId", message.Id) .WithScope("TraceId", message.CorrelationId); using (requestLogger.BeginScope()) { requestLogger.LogDebug("Starting to process queued message."); var result = await mercuryFacade.SendAsync(message.Request, token).ConfigureAwait(false); if (result.IsFailed) { requestLogger.LogError("Failed to process queued message."); requestLogger.LogDebug("Rejecting queued message."); consumer.Reject(message); requestLogger.LogDebug("Rejected queued message."); } else { requestLogger.LogDebug("Processed queued message."); requestLogger.LogDebug("Acknowledging queued message."); consumer.Acknowledge(message); requestLogger.LogDebug("Acknowledged queued message."); } } } }
public async Task <IActionResult> SendMailAsync([FromBody] EmailRequest model) { await mercuryFacade.SendAsync(model); return(Ok()); }
public Task <Result> Handle(SendMailRequest request, CancellationToken cancellationToken) { return(mercuryFacade.SendAsync(request.Request, cancellationToken)); }