19 lines
763 B
C#
19 lines
763 B
C#
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace Core.Cerberos.External
|
|
{
|
|
public sealed class TrackingMechanismExtension(IHttpContextAccessor httpContextAccessor) : DelegatingHandler
|
|
{
|
|
private readonly IHttpContextAccessor _httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
|
|
|
|
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
|
{
|
|
if (_httpContextAccessor.HttpContext != null)
|
|
{
|
|
request.Headers.Add("TrackingId", Guid.NewGuid().ToString());
|
|
}
|
|
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
|
|
}
|
|
}
|
|
}
|