namespace Indotalent.ConfigBackEnd.Behaviours; using Indotalent.Shared.Consts; using MediatR; using Microsoft.Extensions.Logging; public class UnhandledExceptionBehaviour : IPipelineBehavior where TRequest : IRequest { private readonly ILogger _logger; public UnhandledExceptionBehaviour(ILogger logger) { _logger = logger; } public async Task Handle(TRequest request, RequestHandlerDelegate 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; } } }