URSA.Security.ResourceSecurityInfo.Merge C# (CSharp) Method

Merge() private method

private Merge ( SecuritySpecificationInfo securitySpecificationInfo, object>.Expression mergingDelegate ) : void
securitySpecificationInfo SecuritySpecificationInfo
mergingDelegate object>.Expression
return void
        private void Merge(SecuritySpecificationInfo securitySpecificationInfo, Expression<Func<ResourceSecurityInfo, object>> mergingDelegate)
        {
            var method = ((MethodCallExpression)mergingDelegate.Body).Method;
            foreach (var claimType in securitySpecificationInfo)
            {
                if (!securitySpecificationInfo[claimType].Any())
                {
                    method.Invoke(this, new object[] { claimType, null });
                }
                else
                {
                    foreach (var claimValue in securitySpecificationInfo[claimType])
                    {
                        method.Invoke(this, new object[] { claimType, claimValue });
                    }
                }
            }
        }
    }