void IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (context.BindingElements != null) { PrivacyNoticeBindingElement settings = context.BindingElements.Find <PrivacyNoticeBindingElement>(); if (settings != null) { XmlDocument doc = new XmlDocument(); // PrivacyNotice assertion XmlElement assertion = doc.CreateElement(PrivacyNoticePolicyStrings.PrivacyNoticePrefix, PrivacyNoticePolicyStrings.PrivacyNoticeName, PrivacyNoticePolicyStrings.PrivacyNoticeNamespace); assertion.InnerText = settings.Url.ToString(); assertion.SetAttribute(PrivacyNoticePolicyStrings.PrivacyNoticeVersionAttributeName, PrivacyNoticePolicyStrings.PrivacyNoticeNamespace, XmlConvert.ToString(settings.Version)); context.GetBindingAssertions().Add(assertion); } } }
public PrivacyNoticeBindingElement(PrivacyNoticeBindingElement elementToBeCloned) { var e = elementToBeCloned; Url = e.Url; Version = e.Version; }
void IPolicyImportExtension.ImportPolicy(MetadataImporter importer, PolicyConversionContext policyContext) { if (policyContext == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("policyContext"); } XmlElement element = PolicyConversionContext.FindAssertion(policyContext.GetBindingAssertions(), "PrivacyNotice", "http://schemas.xmlsoap.org/ws/2005/05/identity", true); if (element != null) { PrivacyNoticeBindingElement item = policyContext.BindingElements.Find <PrivacyNoticeBindingElement>(); if (item == null) { item = new PrivacyNoticeBindingElement(); policyContext.BindingElements.Add(item); } item.Url = new Uri(element.InnerText); string attribute = element.GetAttribute("Version", "http://schemas.xmlsoap.org/ws/2005/05/identity"); if (string.IsNullOrEmpty(attribute)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("CannotImportPrivacyNoticeElementWithoutVersionAttribute"))); } int result = 0; if (!int.TryParse(attribute, out result)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("PrivacyNoticeElementVersionAttributeInvalid"))); } item.Version = result; } }
internal override bool IsMatch(BindingElement b) { if (b == null) { return(false); } PrivacyNoticeBindingElement privacy = b as PrivacyNoticeBindingElement; if (privacy == null) { return(false); } return(this.url == privacy.url && this.version == privacy.version); }
internal override bool IsMatch(BindingElement b) { if (b == null) { return(false); } PrivacyNoticeBindingElement element = b as PrivacyNoticeBindingElement; if (element == null) { return(false); } return((this.url == element.url) && (this.version == element.version)); }
internal override bool IsMatch(BindingElement b) #endif { if (b == null) { return(false); } PrivacyNoticeBindingElement noticeBindingElement = b as PrivacyNoticeBindingElement; if (noticeBindingElement == null || !(this.url == noticeBindingElement.url)) { return(false); } return(this.version == noticeBindingElement.version); }
void IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (context.BindingElements != null) { PrivacyNoticeBindingElement element = context.BindingElements.Find <PrivacyNoticeBindingElement>(); if (element != null) { XmlElement item = new XmlDocument().CreateElement("ic", "PrivacyNotice", "http://schemas.xmlsoap.org/ws/2005/05/identity"); item.InnerText = element.Url.ToString(); item.SetAttribute("Version", "http://schemas.xmlsoap.org/ws/2005/05/identity", XmlConvert.ToString(element.Version)); context.GetBindingAssertions().Add(item); } } }
void IPolicyImportExtension.ImportPolicy(MetadataImporter importer, PolicyConversionContext policyContext) { if (policyContext == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("policyContext"); } XmlElement privacyNoticeAssertion = PolicyConversionContext.FindAssertion(policyContext.GetBindingAssertions(), PrivacyNoticePolicyStrings.PrivacyNoticeName, PrivacyNoticePolicyStrings.PrivacyNoticeNamespace, true); if (privacyNoticeAssertion != null) { PrivacyNoticeBindingElement settings = policyContext.BindingElements.Find <PrivacyNoticeBindingElement>(); if (null == settings) { settings = new PrivacyNoticeBindingElement(); policyContext.BindingElements.Add(settings); } settings.Url = new Uri(privacyNoticeAssertion.InnerText); string versionString = privacyNoticeAssertion.GetAttribute(PrivacyNoticePolicyStrings.PrivacyNoticeVersionAttributeName, PrivacyNoticePolicyStrings.PrivacyNoticeNamespace); if (string.IsNullOrEmpty(versionString)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.CannotImportPrivacyNoticeElementWithoutVersionAttribute))); } int version = 0; if (!Int32.TryParse(versionString, out version)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.PrivacyNoticeElementVersionAttributeInvalid))); } settings.Version = version; } }
public PrivacyNoticeBindingElement(PrivacyNoticeBindingElement elementToBeCloned) : base(elementToBeCloned) { this.url = elementToBeCloned.url; this.version = elementToBeCloned.version; }
public PrivacyNoticeBindingElement(PrivacyNoticeBindingElement elementToBeCloned) : base(elementToBeCloned) { _url = elementToBeCloned._url; _version = elementToBeCloned._version; }