public async Task <IResponse> getDomainInfo(string name) { try { bool removeTrailingDot = _configRoot.GetValue <bool>("RemoveTrailingDot"); if (removeTrailingDot && name.EndsWith(".")) { name = name.Remove(name.Length - 1); } using (QueryResult queryResult = await _rqliteService.QueryAsync($"SELECT id,name,master,last_check,type,notified_serial,account FROM domains WHERE LOWER(name)='{name.ToLower()}'")) { return(DomainInfoResponse.FromValues(queryResult.Results.FirstOrDefault().Values)); } } catch (NoValuesException) { _logger.LogDebug($"No domaininfo records found for domain '{name}'"); return(new BoolResponse { result = false }); } catch (Exception ex) { _logger.LogError(ex.Message); return(new BoolResponse { Log = new List <string>() { $"Failed to get DomainInfo for domain '{name}'" }, result = false }); } }
protected override void ProcessDataNode(XmlDocument doc, XmlNamespaceManager namespaces) { base.ProcessDataNode(doc, namespaces); namespaces.AddNamespace("n", "http://www.nominet.org.uk/epp/xml/std-notifications-1.0"); var registrarChangeNode = doc.SelectSingleNode("/ns:epp/ns:response/ns:resData/n:rcData", namespaces); if (registrarChangeNode != null) { var originatorNode = registrarChangeNode.SelectSingleNode("n:orig", namespaces); if (originatorNode != null) { Originator = originatorNode.InnerText; } var registrarNode = registrarChangeNode.SelectSingleNode("n:registrarTag", namespaces); if (registrarNode != null) { RegistrarTag = registrarNode.InnerText; } // Added by Brian Wojtczak, Fasthosts var caseNode = registrarChangeNode.SelectSingleNode("n:caseId", namespaces); if (caseNode != null) { CaseId = caseNode.InnerText; } var domainListNode = registrarChangeNode.SelectSingleNode("n:domainListData", namespaces); if (domainListNode != null) { namespaces.AddNamespace("domain", "urn:ietf:params:xml:ns:domain-1.0"); var domainNodes = domainListNode.SelectNodes("domain:infData", namespaces); if (domainNodes != null) { DomainList = new List <Domain>(); foreach (XmlNode node in domainNodes) { var domainRes = new DomainInfoResponse(node.OuterXml); DomainList.Add(domainRes.Domain); } } } namespaces.AddNamespace("contact", "urn:ietf:params:xml:ns:contact-1.0"); var contactNode = registrarChangeNode.SelectSingleNode("contact:infData", namespaces); if (contactNode != null) { var contactRes = new ContactInfoResponse(contactNode.OuterXml); Contact = contactRes.Contact; } } }
public void TestDomainInfoResponse() { var eppResponse = new DomainInfoResponse(ToBytes(@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""no""?> <epp xmlns=""urn:ietf:params:xml:ns:epp-1.0""> <response> <result code=""1000""> <msg>Command completed successfully</msg> </result> <resData> <domain:infData xmlns:domain=""urn:ietf:params:xml:ns:domain-1.0""> <domain:name>pc-case3.ca</domain:name> <domain:roid>CIRA-lifecycle-00122</domain:roid> <domain:status s=""serverUpdateProhibited"">change registrant</domain:status> <domain:status s=""serverDeleteProhibited""/> <domain:status s=""serverRenewProhibited""/> <domain:status s=""serverTransferProhibited""/> <domain:status s=""serverHold""/> <domain:registrant>rant003</domain:registrant> <domain:contact type=""admin"">admin003</domain:contact> <domain:contact type=""tech"">tech003</domain:contact> <domain:ns> <domain:hostObj>ns1.example.ca</domain:hostObj> <domain:hostObj>ns2.example.ca</domain:hostObj> </domain:ns> <domain:host>ns1.pc-case3.ca</domain:host> <domain:host>ns2.pc-case3.ca</domain:host> <domain:clID>automatedRARsprint3</domain:clID> <domain:crID>automatedRARsprint3</domain:crID> <domain:crDate>2009-12-08T16:25:01.0Z</domain:crDate> <domain:exDate>2010-12-08T16:25:01.0Z</domain:exDate> <domain:authInfo> <domain:pw>password2</domain:pw> </domain:authInfo> </domain:infData> </resData> <extension> <cira:ciraInfo xmlns:cira=""urn:ietf:params:xml:ns:cira-1.0""> <cira:domainStageOfLife>pending delete</cira:domainStageOfLife> <cira:domainStageOfLifeEnd>2009-12-16T16:29:05.0Z</cira:domainStageOfLifeEnd> </cira:ciraInfo> </extension> <trID> <clTRID>ABC-12347</clTRID> <svTRID>cira-000002-0000000005</svTRID> </trID> </response> </epp> ")); PrintResponse(eppResponse); }