protected override void ProcessExtensionNode(XmlDocument doc, XmlNamespaceManager namespaces) { namespaces.AddNamespace("contact", "urn:ietf:params:xml:ns:contact-1.0"); namespaces.AddNamespace("contact-nom-ext", "http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"); namespaces.AddNamespace("nom-data-quality", "http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1"); var children = doc.SelectSingleNode("/ns:epp/ns:response/ns:extension/contact-nom-ext:infData", namespaces); var quality = doc.SelectSingleNode("/ns:epp/ns:response/ns:extension/nom-data-quality:infData", namespaces); if (children != null) { var tradeNameNode = children.SelectSingleNode("contact-nom-ext:trad-name", namespaces); if (tradeNameNode != null) { _nomContact.TradeName = tradeNameNode.InnerText; } var coNoNode = children.SelectSingleNode("contact-nom-ext:co-no", namespaces); if (coNoNode != null) { _nomContact.CompanyNumber = coNoNode.InnerText; } var typeNode = children.SelectSingleNode("contact-nom-ext:type", namespaces); if (typeNode != null) { _nomContact.Type = (CoType)Enum.Parse(typeof(CoType), typeNode.InnerText); } var optOutNode = children.SelectSingleNode("contact-nom-ext:opt-out", namespaces); if (optOutNode != null) { _nomContact.OptOut = (YesNoFlag)Enum.Parse(typeof(YesNoFlag), optOutNode.InnerText); } } if (quality != null) { _nomDataQuality = new NominetDataQualityExtension(); var status = quality.SelectSingleNode("nom-data-quality:status", namespaces); if (status != null) { _nomDataQuality.Status = status.InnerText; } var reason = quality.SelectSingleNode("nom-data-quality:reason", namespaces); if (reason != null) { _nomDataQuality.Reason = reason.InnerText; } var dateCommenced = quality.SelectSingleNode("nom-data-quality:dateCommenced", namespaces); if (dateCommenced != null) { DateTime date; if (DateTime.TryParse(dateCommenced.InnerText, out date)) { _nomDataQuality.DateCommenced = date; } } var dateToSuspend = quality.SelectSingleNode("nom-data-quality:dateToSuspend", namespaces); if (dateToSuspend != null) { DateTime date; if (DateTime.TryParse(dateToSuspend.InnerText, out date)) { _nomDataQuality.DateToSuspend = date; } } var lockApplied = quality.SelectSingleNode("nom-data-quality:lockApplied", namespaces); if (lockApplied != null) { bool lockValue; if (!Boolean.TryParse(lockApplied.InnerText, out lockValue)) { if (lockApplied.InnerText == "1" || lockApplied.InnerText.ToLower() == "y") { lockValue = true; } else { lockValue = false; } _nomDataQuality.LockApplied = lockValue; } } var domainListNodes = quality.SelectSingleNode("nom-data-quality:domainListData", namespaces); if (domainListNodes != null) { _nomDataQuality.DomainList = new List <string>(); var domainNodes = domainListNodes.SelectNodes("nom-data-quality:domainName", namespaces); if (domainNodes != null) { foreach (XmlNode domain in domainNodes) { _nomDataQuality.DomainList.Add(domain.InnerText); } } } } }
protected override void ProcessExtensionNode(XmlDocument doc, XmlNamespaceManager namespaces) { namespaces.AddNamespace("contact", "urn:ietf:params:xml:ns:contact-1.0"); namespaces.AddNamespace("contact-nom-ext", "http://www.nominet.org.uk/epp/xml/contact-nom-ext-1.0"); namespaces.AddNamespace("nom-data-quality", "http://www.nominet.org.uk/epp/xml/nom-data-quality-1.1"); var children = doc.SelectSingleNode("/ns:epp/ns:response/ns:extension/contact-nom-ext:infData", namespaces); var quality = doc.SelectSingleNode("/ns:epp/ns:response/ns:extension/nom-data-quality:infData", namespaces); if (children != null) { var tradeNameNode = children.SelectSingleNode("contact-nom-ext:trad-name", namespaces); if (tradeNameNode != null) { _nomContact.TradeName = tradeNameNode.InnerText; } var coNoNode = children.SelectSingleNode("contact-nom-ext:co-no", namespaces); if (coNoNode != null) { _nomContact.CompanyNumber = coNoNode.InnerText; } var typeNode = children.SelectSingleNode("contact-nom-ext:type", namespaces); if (typeNode != null) { _nomContact.Type = (CoType)Enum.Parse(typeof(CoType), typeNode.InnerText); } var optOutNode = children.SelectSingleNode("contact-nom-ext:opt-out", namespaces); if (optOutNode != null) { _nomContact.OptOut = (YesNoFlag)Enum.Parse(typeof(YesNoFlag), optOutNode.InnerText); } } if (quality != null) { _nomDataQuality = new NominetDataQualityExtension(); var status = quality.SelectSingleNode("nom-data-quality:status", namespaces); if (status != null) { _nomDataQuality.Status = status.InnerText; } var reason = quality.SelectSingleNode("nom-data-quality:reason", namespaces); if (reason != null) { _nomDataQuality.Reason = reason.InnerText; } var dateCommenced = quality.SelectSingleNode("nom-data-quality:dateCommenced", namespaces); if (dateCommenced != null) { DateTime date; if (DateTime.TryParse(dateCommenced.InnerText, out date)) { _nomDataQuality.DateCommenced = date; } } var dateToSuspend = quality.SelectSingleNode("nom-data-quality:dateToSuspend", namespaces); if (dateToSuspend != null) { DateTime date; if (DateTime.TryParse(dateToSuspend.InnerText, out date)) { _nomDataQuality.DateToSuspend = date; } } var lockApplied = quality.SelectSingleNode("nom-data-quality:lockApplied", namespaces); if (lockApplied != null) { bool lockValue; if (!Boolean.TryParse(lockApplied.InnerText, out lockValue)) { if (lockApplied.InnerText == "1" || lockApplied.InnerText.ToLower() == "y") { lockValue = true; } else { lockValue = false; } _nomDataQuality.LockApplied = lockValue; } } var domainListNodes = quality.SelectSingleNode("nom-data-quality:domainListData", namespaces); if (domainListNodes != null) { _nomDataQuality.DomainList = new List<string>(); var domainNodes = domainListNodes.SelectNodes("nom-data-quality:domainName", namespaces); if (domainNodes != null) { foreach (XmlNode domain in domainNodes) { _nomDataQuality.DomainList.Add(domain.InnerText); } } } } }