using System.Linq; using System.Security.Claims; namespace Gameboard.ShogiUI.Sockets.Extensions { public static class Extensions { public static string? UserId(this ClaimsPrincipal self) { return self.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value; } public static string? DisplayName(this ClaimsPrincipal self) { return self.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value; } public static bool IsGuest(this ClaimsPrincipal self) { return self.HasClaim(c => c.Type == ClaimTypes.Role && c.Value == "Guest"); } public static string ToCamelCase(this string self) { return char.ToLowerInvariant(self[0]) + self[1..]; } } }