public static IEnumerable <string> GetPaymentPolicy(this ESubscriptionPolicy role) { List <string> result = new List <string> { role.ToString(), nameof(ESubscriptionPolicy.NONE) }; if (!role.HasFlag(ESubscriptionPolicy.TIER_1)) { result.Add(nameof(ESubscriptionPolicy.TIER_1)); } if (!role.HasFlag(ESubscriptionPolicy.TIER_2)) { result.Add(nameof(ESubscriptionPolicy.TIER_2)); } if (!role.HasFlag(ESubscriptionPolicy.TIER_3)) { result.Add(nameof(ESubscriptionPolicy.TIER_3)); } if (!role.HasFlag(ESubscriptionPolicy.PREMIUM)) { result.Add(nameof(ESubscriptionPolicy.PREMIUM)); } return(result); }
public static bool HasPaymentPolicy(this ESubscriptionPolicy policy, IEnumerable <Claim> claims) { if (policy == ESubscriptionPolicy.NONE) { return(true); } Claim claim = claims?.FirstOrDefault(x => x.Type.Equals(nameof(EClaimTypes.SUBSCRIPTION_LEVEL))); if (claim == null) { return(false); } Enum.TryParse(claim.Value, out ESubscriptionPolicy value); return(value.HasFlag(policy)); }