PlanTempusApp/PlanTempus.Components/Users/Create/CreateUserHandlerDecorator.cs
2025-03-10 15:56:22 +01:00

25 lines
938 B
C#

using Microsoft.ApplicationInsights;
namespace PlanTempus.Components.Users.Create;
public class CreateUserHandlerDecorator : ICommandHandler<CreateUserCommand, CreateUserResult>
{
private readonly ICommandHandler<CreateUserCommand, CreateUserResult> _decoratedHandler;
private readonly TelemetryClient _telemetryClient;
public CreateUserHandlerDecorator(
ICommandHandler<CreateUserCommand, CreateUserResult> decoratedHandler,
TelemetryClient telemetryClient)
{
_decoratedHandler = decoratedHandler;
_telemetryClient = telemetryClient;
}
public async Task<CreateUserResult> Handle(CreateUserCommand command)
{
_telemetryClient.TrackTrace($"Before handling {nameof(CreateUserCommand)}");
var result = await _decoratedHandler.Handle(command);
_telemetryClient.TrackTrace($"After handling {nameof(CreateUserCommand)}");
return result;
}
}