< Summary

Information
Class: FLP.Application.Handlers.Exceptions.GlobalRequestExceptionHandler<T1, T2, T3>
Assembly: FLP.Application
File(s): /home/runner/work/FLP.AzureFunctions/FLP.AzureFunctions/FLP.Application/Handlers/Exceptions/GlobalRequestExceptionHandler.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 14
Coverable lines: 14
Total lines: 33
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
Handle(...)100%210%

File(s)

/home/runner/work/FLP.AzureFunctions/FLP.AzureFunctions/FLP.Application/Handlers/Exceptions/GlobalRequestExceptionHandler.cs

#LineLine coverage
 1using FLP.Core.Context.Shared;
 2using FLP.Core.Interfaces.Repository;
 3using MediatR.Pipeline;
 4using Microsoft.Extensions.Logging;
 5
 6namespace FLP.Application.Handlers.Exceptions;
 7
 08internal class GlobalRequestExceptionHandler<TRequest, TResponse, TException>(
 09   ILogger<GlobalRequestExceptionHandler<TRequest, TResponse, TException>> _logger, IUnitOfWork _uow) : IRequestExceptio
 10        where TRequest : notnull
 11        where TResponse : BaseResponse, new()
 12        where TException : Exception
 13{
 14    public Task Handle(TRequest request, TException exception, RequestExceptionHandlerState<TResponse> state,
 15        CancellationToken cancellationToken)
 016    {
 017        var ex = exception;
 18
 019        _logger.LogError(ex, "Something went wrong while handling request of type {@requestType}", typeof(TRequest));
 20
 021        var response = new TResponse
 022        {
 023            IsSuccess = false,
 024            Message = [ex.Message],
 025        };
 26
 027        state.SetHandled(response);
 28
 029        _uow.RollbackTransaction();
 30
 031        return Task.CompletedTask;
 032    }
 33}