0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-29 18:21:08 +00:00
CleanArchitecture/CleanArchitecture.Infrastructure/EventSourcing/EventStoreContext.cs
2023-08-30 23:36:48 +02:00

37 lines
951 B
C#

using System;
using CleanArchitecture.Domain.Interfaces;
using Microsoft.AspNetCore.Http;
namespace CleanArchitecture.Infrastructure.EventSourcing;
public sealed class EventStoreContext : IEventStoreContext
{
private readonly string _correlationId;
private readonly IUser? _user;
public EventStoreContext(IUser? user, IHttpContextAccessor? httpContextAccessor)
{
_user = user;
if (httpContextAccessor?.HttpContext is null ||
!httpContextAccessor.HttpContext.Request.Headers.TryGetValue("X-CLEAN-ARCHITECTURE-CORRELATION-ID",
out var id))
{
_correlationId = $"internal - {Guid.NewGuid()}";
}
else
{
_correlationId = id.ToString();
}
}
public string GetCorrelationId()
{
return _correlationId;
}
public string GetUserEmail()
{
return _user?.GetUserEmail() ?? string.Empty;
}
}