diff --git a/PostFundManagement.Api/Program.cs b/PostFundManagement.Api/Program.cs index c44f968..dbac407 100644 --- a/PostFundManagement.Api/Program.cs +++ b/PostFundManagement.Api/Program.cs @@ -29,7 +29,7 @@ builder.Services.AddApiVersioning(options => builder.Services.AddScoped(); builder.Services.AddScoped(); -builder.Services.AddScoped(); +builder.Services.AddTransient(); builder.Services.AddEndpoints(Assembly.GetExecutingAssembly()); builder.Services.AddApiServices(builder.Configuration); diff --git a/PostFundManagement.Application/Extensions/General.cs b/PostFundManagement.Application/Extensions/General.cs index 91e7fdb..ec14c53 100644 --- a/PostFundManagement.Application/Extensions/General.cs +++ b/PostFundManagement.Application/Extensions/General.cs @@ -1,4 +1,4 @@ -namespace PostFundManagement.Application.Extensions; +namespace PostFundManagement.Application.Extensions; public static class General { @@ -16,8 +16,7 @@ public static class General public static (bool Decoded, Guid userId) GetUserId(this ClaimsPrincipal principal) { - var subClaim = principal.FindFirst(JwtRegisteredClaimNames.Sub)?.Value - ?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value; + var subClaim = principal.FindFirst(JwtRegisteredClaimNames.Sub)?.Value ?? principal.FindFirst(ClaimTypes.NameIdentifier)?.Value; var decoded = Guid.TryParse(subClaim, out var userId); @@ -26,34 +25,20 @@ public static class General public static (bool Decoded, string email) GetUserEmail(this ClaimsPrincipal principal) { - var emailClaim = principal.FindFirst("email")?.Value - ?? principal.FindFirst(ClaimTypes.Email)?.Value - ?? principal.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")?.Value - ?? principal.FindFirst("preferred_username")?.Value - ?? principal.FindFirst("name")?.Value - ?? principal.FindFirst(ClaimTypes.Name)?.Value; + var emailClaim = principal.FindFirst("email")?.Value ?? principal.FindFirst(ClaimTypes.Email)?.Value; var decoded = !string.IsNullOrWhiteSpace(emailClaim); - return (decoded, emailClaim ?? string.Empty); + return (decoded, emailClaim!); } public static (bool Decoded, string role) GetUserRole(this ClaimsPrincipal principal) { - var roleClaims = principal.FindAll("role") - .Concat(principal.FindAll(ClaimTypes.Role)) - .Concat(principal.FindAll("http://schemas.microsoft.com/ws/2008/06/identity/claims/role")) - .Concat(principal.FindAll("roles")) - .Select(c => c.Value) - .Where(v => !string.IsNullOrWhiteSpace(v)) - .ToList(); + var roleClaim = principal.FindFirst("role")?.Value ?? principal.FindFirst(ClaimTypes.Role)?.Value; - var partnerRole = roleClaims.FirstOrDefault(r => r.Equals("Partner", StringComparison.OrdinalIgnoreCase)); - var role = partnerRole ?? roleClaims.FirstOrDefault(); + var decoded = !string.IsNullOrWhiteSpace(roleClaim); - var decoded = !string.IsNullOrWhiteSpace(role); - - return (decoded, role ?? string.Empty); + return (decoded, roleClaim!); } public static Microsoft.AspNetCore.Mvc.ProblemDetails ToProblems(this IReadOnlyList errors, int statusCode = StatusCodes.Status400BadRequest) => new()