using System.Security.Claims; using FrontOffice.BFF.Application.Common.Interfaces; using Microsoft.AspNetCore.Http; namespace FrontOffice.BFF.WebApi.Common.Services; public class CurrentUserService : ICurrentUserService { private readonly IHttpContextAccessor _httpContextAccessor; public CurrentUserService(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public long? UserId => long?.Parse(_httpContextAccessor.HttpContext?.User?.FindFirstValue(ClaimTypes.NameIdentifier) ?? throw new InvalidOperationException()); public string? FirstName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("FirstName"); public string? LastName => _httpContextAccessor.HttpContext?.User?.FindFirstValue("LastName"); public string? MobileNumber => _httpContextAccessor.HttpContext?.User?.FindFirstValue("MobileNumber"); }