Files
Core.Thalos.BuildingBlocks/Core.Cerberos.Adapters/Extensions/TrackingMechanismExtension.cs
Sergio Matias Urquin d5925a6476 Add project files.
2025-04-29 18:57:20 -06:00

24 lines
911 B
C#

using Microsoft.AspNetCore.Http;
namespace Core.Cerberos.Adapters.Extensions
{
public sealed class TrackingMechanismExtension : DelegatingHandler
{
private readonly IHttpContextAccessor _httpContextAccessor;
public TrackingMechanismExtension(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (_httpContextAccessor.HttpContext.Items.TryGetValue("TrackingId", out var trackingId))
{
request.Headers.Add("TrackingId", trackingId.ToString());
}
return await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
}
}
}