• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

loresoft / MediatR.CommandQuery / 8911801772

01 May 2024 04:09PM CUT coverage: 57.379% (-1.8%) from 59.163%
8911801772

push

github

pwelter34
tweak build

342 of 700 branches covered (48.86%)

Branch coverage included in aggregate %.

1011 of 1658 relevant lines covered (60.98%)

18.48 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

70.83
/src/MediatR.CommandQuery/Handlers/RequestHandlerBase.cs
1
using System.Diagnostics;
2

3
using Microsoft.Extensions.Logging;
4

5
namespace MediatR.CommandQuery.Handlers;
6

7
public abstract partial class RequestHandlerBase<TRequest, TResponse> : IRequestHandler<TRequest, TResponse>
8
    where TRequest : IRequest<TResponse>
9
{
10
    private readonly string _name;
11

12
    protected RequestHandlerBase(ILoggerFactory loggerFactory)
106✔
13
    {
14
        if (loggerFactory is null)
106!
15
            throw new ArgumentNullException(nameof(loggerFactory));
×
16

17
        var type = GetType();
106✔
18

19
        Logger = loggerFactory.CreateLogger(type);
106✔
20
        _name = type.Name;
106✔
21
    }
106✔
22

23
    protected ILogger Logger { get; }
212✔
24

25
    public virtual async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken)
26
    {
27
        if (request is null)
106!
28
            throw new ArgumentNullException(nameof(request));
×
29

30
        try
31
        {
32
            LogStart(Logger, _name, request);
106✔
33
            var watch = Stopwatch.StartNew();
106✔
34

35
            var response = await Process(request, cancellationToken).ConfigureAwait(false);
106✔
36

37
            watch.Stop();
106✔
38
            LogFinish(Logger, _name, request, watch.ElapsedMilliseconds);
106✔
39

40
            return response;
106✔
41
        }
42
        catch (Exception ex)
×
43
        {
44
            LogError(Logger, _name, request, ex.Message, ex);
×
45
            throw;
×
46
        }
47
    }
106✔
48

49
    protected abstract Task<TResponse> Process(TRequest request, CancellationToken cancellationToken);
50

51

52
    [LoggerMessage(1, LogLevel.Trace, "Processing handler '{handler}' for request '{request}' ...")]
53
    static partial void LogStart(ILogger logger, string handler, IRequest<TResponse> request);
54

55
    [LoggerMessage(2, LogLevel.Trace, "Processed handler '{handler}' for request '{request}': {elapsed} ms")]
56
    static partial void LogFinish(ILogger logger, string handler, IRequest<TResponse> request, long elapsed);
57

58
    [LoggerMessage(3, LogLevel.Trace, "Error processing handler '{handler}' for request '{request}': {errorMessage}")]
59
    static partial void LogError(ILogger logger, string handler, IRequest<TResponse> request, string errorMessage, Exception? exception);
60
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc