Files
CleanArchitecture/CleanArchitecture/CleanArchitecture.Application/Behaviours/UnhandledExceptionBehaviour.cs
Alejandro Sarmiento 7ada54dbf5 BaseRepository implementado
Siguiente video: 50 Implementar metodos personalizados
2024-02-17 13:35:47 +01:00

29 lines
974 B
C#

using MediatR;
using Microsoft.Extensions.Logging;
namespace CleanArchitecture.Application.Behaviours
{
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, "CleanArchitecture Request: Unhandled Exception for Request {Name} {@Request}", requestName, request);
throw;
}
}
}
}