예제 #1
0
        public async Task <IActionResult> QueueMailAsync([FromBody] MercuryRequest <ExpandoObject> request, CancellationToken token)
        {
            var sendResult = await mediator.Send(new QueueMailRequest(request), token).ConfigureAwait(false);

            if (sendResult.IsFailed)
            {
                return(BadRequest(MercuryResult.BadRequestResult(sendResult)));
            }

            return(Accepted(MercuryResult.AcceptedResult()));
        }
        public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            try
            {
                await next(context).ConfigureAwait(false);
            }
            catch (OperationCanceledException)
            {
                logger.LogDebug("Request was cancelled");

                context.Response.StatusCode = StatusCodes.Status204NoContent;
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Unhandled exception occured");

                context.Response.StatusCode  = StatusCodes.Status500InternalServerError;
                context.Response.ContentType = MediaTypeNames.Application.Json;

                await context.Response
                .WriteAsync(JsonConvert.SerializeObject(MercuryResult.InternalServerErrorResult(), SerializationSettings))
                .ConfigureAwait(false);
            }
        }
예제 #3
0
 public IActionResult HealthCheck()
 {
     return(Ok(MercuryResult.OkResult()));
 }