using HrynCo.NotificationService.Services.Logging; using MediatR; using Serilog; namespace HrynCo.NotificationService.Services.Core; public abstract class RequestHandler : IRequestHandler where TRequest : IRequest { protected RequestHandler(IContextualSerilogLogger logger) { Logger = logger.Logger; } protected ILogger Logger { get; } public Task Handle(TRequest request, CancellationToken cancellationToken) { return DoOnHandle(request, cancellationToken); } protected abstract Task DoOnHandle(TRequest request, CancellationToken cancellationToken); }