public static PSIScopeElement ConvertToPSType(this ScopeElement value) { if (value == null) { return(null); } var hasInValue = value.AdditionalProperties.Any(keyValuePair => "in".Equals(keyValuePair.Key, StringComparison.InvariantCultureIgnoreCase)); if (hasInValue) { return(new PSScopeElementIn(value.Field, (value.AdditionalProperties.First(keyValuePair => "in".Equals(keyValuePair.Key, StringComparison.InvariantCultureIgnoreCase)).Value as JArray)?.ToObject <string[]>())); } return(new PSScopeElementContains( value.Field, value.AdditionalProperties.FirstOrDefault(keyValuePair => "contains".Equals(keyValuePair.Key, StringComparison.InvariantCultureIgnoreCase)).Value?.ToString())); }
public static Scope ToModel(this ScopeElement scopeElement) { if (scopeElement == null) { return(null); } var scope = new Scope { Identifier = new Uri(scopeElement.Identifier), UseRelativeUri = scopeElement.UseRelativeUri, Url = scopeElement.UseRelativeUri ? scopeElement.Uri.ReplaceWithLocalhostWhenRelative() : new Uri(scopeElement.Uri), UseClaimsPolicyEngine = scopeElement.UseClaimsPolicyEngine }; if (scopeElement.Issuers != null) { var issuers = new List <ClaimProvider>(); foreach (AllowedClaimProviderElement allowedIssuer in scopeElement.Issuers) { issuers.Add(allowedIssuer.ToModel()); } scope.AllowedIssuers = issuers; } if (scopeElement.ClaimRequirements != null) { var claimRequirements = new List <ClaimTypeRequirement>(); foreach (ClaimRequirementElement claimReq in scopeElement.ClaimRequirements) { claimRequirements.Add(claimReq.ToModel()); } scope.ClaimTypeRequirements = claimRequirements; } return(scope); }
static public IEnumerable <IEnumerable <T> > GetReferenceables <T>(this ScopeElement item, string id, ScopeAccess access, IList <Scope> path) { return(item.GetLocalScope().GetReferenceables <T>(id, access, path)); }
static public Scope GetParentScope(this ScopeElement item) { return(item.GetLocalScope().GetParentScope()); }
static public Scope GetLocalScope(this ScopeElement item) { return(item.GetSelfOrParent <Scope>()); }