public static ExtendedProtectionPolicy BuildPolicy(ExtendedProtectionPolicyElement configurationPolicy)
 {
     if (configurationPolicy.ElementInformation.IsPresent)
     {
         return configurationPolicy.BuildPolicy();
     }
     return DefaultPolicy;
 }
 public static void CopyFrom(ExtendedProtectionPolicyElement source, ExtendedProtectionPolicyElement destination)
 {
     destination.PolicyEnforcement = source.PolicyEnforcement;
     destination.ProtectionScenario = source.ProtectionScenario;
     destination.CustomServiceNames.Clear();
     foreach (ServiceNameElement sourceEntry in source.CustomServiceNames)
     {
         ServiceNameElement entry = new ServiceNameElement();
         entry.Name = sourceEntry.Name;
         destination.CustomServiceNames.Add(entry);
     }
 }
 public static ExtendedProtectionPolicy BuildPolicy(ExtendedProtectionPolicyElement configurationPolicy)
 {
     // using this pattern allows us to have a different default policy
     // than the NCL team chooses.
     if (configurationPolicy.ElementInformation.IsPresent)
     {
         return configurationPolicy.BuildPolicy();
     }
     else
     {
         return ChannelBindingUtility.DefaultPolicy;
     }
 }
        public static void InitializeFrom(ExtendedProtectionPolicy source, ExtendedProtectionPolicyElement destination)
        {
            if (!IsDefaultPolicy(source))
            {
                destination.PolicyEnforcement = source.PolicyEnforcement;
                destination.ProtectionScenario = source.ProtectionScenario;
                destination.CustomServiceNames.Clear();

                if (source.CustomServiceNames != null)
                {
                    foreach (string name in source.CustomServiceNames)
                    {
                        ServiceNameElement entry = new ServiceNameElement();
                        entry.Name = name;
                        destination.CustomServiceNames.Add(entry);
                    }
                }
            }
        }