Files
blazor-swm/ConfigBackEnd/Behaviours/UnhandledExceptionBehaviour.cs
2026-07-21 14:35:37 +07:00

33 lines
894 B
C#

namespace Indotalent.ConfigBackEnd.Behaviours;
using Indotalent.Shared.Consts;
using MediatR;
using Microsoft.Extensions.Logging;
public class UnhandledExceptionBehaviour<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
where TRequest : IRequest<TResponse>
{
private readonly ILogger<TRequest> _logger;
public UnhandledExceptionBehaviour(ILogger<TRequest> logger)
{
_logger = logger;
}
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next, CancellationToken cancellationToken)
{
try
{
return await next();
}
catch (Exception ex)
{
var requestName = typeof(TRequest).Name;
_logger.LogError(ex, GlobalConsts.BehaviourError + " {Name} {@Request}",
requestName, request);
throw;
}
}
}