Files
OpenWarehouse/OpenWarehouse.warehouse.api/Common/ServiceClaims/ServiceClaimsClass.cs
T
2025-02-26 23:42:19 +01:00

29 lines
1.2 KiB
C#

namespace OpenWarehouse.warehouse.api.Common.ServiceClaims;
public static class ServiceClaimsClass
{
private static readonly Dictionary<ServiceClaim, string> ServiceClaimsMap = new()
{
{ ServiceClaim.ServiceAcoountToken, "Service_account_token" },
{ ServiceClaim.ServiceAcoountUsername, "Service_account_username" }
};
public static string GetName(this ServiceClaim serviceClaim)
{
var result = ServiceClaimsMap.TryGetValue(serviceClaim, out var name);
return (result ? name : $"Uknow-{serviceClaim}") ?? $"Role {serviceClaim} Uknow";
}
public static Claim GerClaims(this ServiceClaim serviceClaim, string value)
{
var result = ServiceClaimsMap.TryGetValue(serviceClaim, out var name);
if (!result || value == null) throw new Exception("Claims type not implement");
return new Claim(name ?? throw new NullReferenceException("Claim name excemption"), value);
}
public static Data.ServiceClaims CreateServiceClaims(this ServiceClaim serviceClaim, string value)
{
return new Data.ServiceClaims() { ClaimType = serviceClaim.GetName(), ClaimValue = value };
}
}