/// <summary> /// Executes the transform. /// </summary> /// <param name="claimSet">Input set of claims to transform.</param> /// <returns>Transformed set of claims.</returns> public override IEnumerable <Claim> TransformClaims(IEnumerable <Claim> claims) { if (claims == null) { throw new ArgumentNullException("claims"); } TransformAction action = null; IList <Claim> matchedClaims = null; IEnumerable <Claim> transformedClaims = null; bool eval = false; action = TransformAction.Create(this.Type, null); if (this.MatchExpression != null) { MatchExpression matcher = MatchExpressionDictionary.Default[this.MatchExpression.Type.ToString()]; //CaplConfigurationManager.MatchExpressions[this.MatchExpression.Type.ToString()]; matchedClaims = matcher.MatchClaims(claims, this.MatchExpression.ClaimType, this.MatchExpression.Value); } if (this.Expression == null) { eval = true; } else { eval = this.Expression.Evaluate(claims); } if (eval) { transformedClaims = action.Execute(claims, matchedClaims, this.TargetClaim); } if (transformedClaims != null) { return(transformedClaims); } else { return(claims); } }