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;
                }
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }