ClaimsPolicyEngine.ClaimsPolicyEvaluator.MatchesRule C# (CSharp) Method

MatchesRule() private static method

private static MatchesRule ( ClaimsPolicyEngine.Model.PolicyRule rule, IEnumerable inputClaims ) : IEnumerable
rule ClaimsPolicyEngine.Model.PolicyRule
inputClaims IEnumerable
return IEnumerable
        private static IEnumerable<Claim> MatchesRule(PolicyRule rule, IEnumerable<Claim> inputClaims)
        {
            List<Claim> matchingClaims = new List<Claim>();
            foreach (InputPolicyClaim inputPolicyClaim in rule.InputClaims)
            {
                var claimsMatched = inputClaims.Where(c => (c.Issuer == inputPolicyClaim.Issuer.Uri || c.OriginalIssuer == inputPolicyClaim.Issuer.Uri)
                                                        && c.Type.Equals(inputPolicyClaim.ClaimType.FullName, StringComparison.OrdinalIgnoreCase)
                                                        && ((inputPolicyClaim.Value == Wildcard) || (c.Value.ToUpperInvariant() == inputPolicyClaim.Value.ToUpperInvariant())));

                matchingClaims.AddRange(claimsMatched);
            }

            return matchingClaims;
        }