using Microsoft.AspNetCore.Mvc; using System.Security.Claims; using WorkFlow.API.Attributes; namespace WorkFlow.API.Controllers { [APIKeyAuth] public static class ControllerExtensions { public static bool TryGetUserId(this ClaimsPrincipal user, out int id) => int.TryParse(user.FindFirstValue(ClaimTypes.NameIdentifier), out id); public static bool TryGetUsername(this ClaimsPrincipal user, out string username) { var value = user.FindFirstValue(ClaimTypes.Name); if (value is null) { username = string.Empty; return false; } else { username = value; return true; } } public static bool TryGetName(this ClaimsPrincipal user, out string name) { var value = user.FindFirstValue(ClaimTypes.Surname); if (value is null) { name = string.Empty; return false; } else { name = value; return true; } } public static bool TryGetPrename(this ClaimsPrincipal user, out string prename) { var value = user.FindFirstValue(ClaimTypes.GivenName); if (value is null) { prename = string.Empty; return false; } else { prename = value; return true; } } public static bool TryGetEmail(this ClaimsPrincipal user, out string email) { var value = user.FindFirstValue(ClaimTypes.Email); if (value is null) { email = string.Empty; return false; } else { email = value; return true; } } } }