using System.Security.Claims; using Microsoft.AspNetCore.Components.Authorization; using RealCV.Application.Interfaces; namespace RealCV.Infrastructure.Services; public sealed class UserContextService : IUserContextService { private readonly AuthenticationStateProvider _authenticationStateProvider; public UserContextService(AuthenticationStateProvider authenticationStateProvider) { _authenticationStateProvider = authenticationStateProvider; } public async Task GetCurrentUserIdAsync() { var authState = await _authenticationStateProvider.GetAuthenticationStateAsync(); var userIdClaim = authState.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (string.IsNullOrEmpty(userIdClaim) || !Guid.TryParse(userIdClaim, out var userId)) { return null; } return userId; } }