Пример #1
0
        public async Task <IActionResult> Create([FromBody] CreateContactInfoRequest contactInfoRequest)
        {
            var contactInfo = new ContactInfo
            {
                ContactId = contactInfoRequest.ContactId,
                Content   = contactInfoRequest.Content,
                Type      = contactInfoRequest.Type,
            };

            await _contactInfoService.CreateAsync(contactInfo);

            var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var getLocation = $"{baseUrl}/{APIRoutes.ContactInfoControllerRoutes.Get.Replace("{contactInfoId}", contactInfo.Id.ToString())}";

            var contactInfoResponse = new ContactInfoResponse
            {
                Id        = contactInfo.Id,
                ContactId = contactInfo.ContactId,
                Content   = contactInfo.Content,
                Type      = contactInfo.Type,
            };

            await _redisCacheService
            .DeleteCachedResponseAsync(
                new string[]
            {
                HttpContext.Request.Path,
                APIRoutes.ContactInfoControllerRoutes.GetAll
            });

            return(Created(getLocation, contactInfoResponse));
        }
        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 TestContactInfoResponse()
        {
            var eppResponse = new ContactInfoResponse(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>
<contact:infData xmlns:contact=""urn:ietf:params:xml:ns:contact-1.0"">
<contact:id>11aabb</contact:id>
<contact:roid>roid1</contact:roid>
.CA Registry Guide for Registrars: Version 4.02
Contacts
Contact Check
<contact:status s=""ok""/>
<contact:postalInfo type=""loc"">
<contact:name>Contact Middle-name LastName</contact:name>
<contact:addr>
<contact:street>123 Everywhere Street</contact:street>
<contact:city>Ottawa</contact:city>
<contact:sp>ON</contact:sp>
<contact:pc>K1R7S8</contact:pc>
<contact:cc>CA</contact:cc>
</contact:addr>
</contact:postalInfo>
<contact:email>[email protected]</contact:email>
<contact:clID>123</contact:clID>
<contact:crID>456</contact:crID>
<contact:crDate>2010-01-07T18:18:53.0Z</contact:crDate>
</contact:infData>
</resData>
<extension>
<cira:ciraInfo xmlns:cira=""urn:ietf:params:xml:ns:cira-1.0"">
<cira:language>en</cira:language>
<cira:cprCategory>CCT</cira:cprCategory>
<cira:individual>Y</cira:individual>
<cira:ciraAgreementVersion>2.0</cira:ciraAgreementVersion>
<cira:agreementTimestamp>2010-01-26T18:18:53.0Z</cira:agreementTimestamp>
<cira:originatingIpAddress>192.168.45.59</cira:originatingIpAddress>
<cira:whoisDisplaySetting>PRIVATE</cira:whoisDisplaySetting>
</cira:ciraInfo>
</extension>
<trID>
<svTRID>CIRA-000108-0000000004</svTRID>
</trID>
</response>
</epp>
"));

            PrintResponse(eppResponse);
        }
Пример #4
0
        public async Task <ActionResult <ContactInfoResponse> > Post(ContactInfoRequest requestObject)
        {
            IFlurlResponse response = await $"{URLConstants.ContactAPIURL}/api/contacts".PostJsonAsync(requestObject);

            if (response.StatusCode >= 500)
            {
                return(StatusCode(500));
            }
            else if (response.StatusCode >= 400)
            {
                return(StatusCode(400));
            }

            ContactInfoResponse responseObject = await response.GetJsonAsync <ContactInfoResponse>();

            return(CreatedAtAction("Post", responseObject));
        }
Пример #5
0
        public void TestContactInfoResponse1()
        {
            byte[] input    = File.ReadAllBytes("ContactInfoResponse1.xml");
            var    response = new ContactInfoResponse(input);
            var    contact  = response.Contact;

            Assert.AreEqual("1000", response.Code);
            Assert.AreEqual("Command completed successfully", response.Message);

            Assert.AreEqual("sh8013", contact.Id);

            Assert.AreEqual("+1.7035555555", contact.Voice.Value);
            Assert.AreEqual("1234", contact.Voice.Extension);
            Assert.AreEqual("+1.7035555556", contact.Fax.Value);
            Assert.AreEqual("*****@*****.**", contact.Email);

            Assert.AreEqual("int", contact.PostalInfo.m_type);
            Assert.AreEqual("John Doe", contact.PostalInfo.m_name);
            Assert.AreEqual("Example Inc.", contact.PostalInfo.m_org);

            Assert.AreEqual("123 Example Dr.", contact.PostalInfo.m_address.Street1);
            Assert.AreEqual("Suite 100", contact.PostalInfo.m_address.Street2);
            Assert.IsNull(contact.PostalInfo.m_address.Street3);
            Assert.AreEqual("Dulles", contact.PostalInfo.m_address.City);
            Assert.AreEqual("VA", contact.PostalInfo.m_address.StateProvince);
            Assert.AreEqual("20166-6503", contact.PostalInfo.m_address.PostalCode);
            Assert.AreEqual("US", contact.PostalInfo.m_address.CountryCode);

            Assert.AreEqual("SH8013-REP", contact.Roid);
            Assert.IsTrue(contact.StatusList.Contains("linked"));
            Assert.IsTrue(contact.StatusList.Contains("clientDeleteProhibited"));
            Assert.AreEqual("ClientY", contact.ClId);
            Assert.AreEqual("ClientX", contact.CrId);
            Assert.AreEqual("ClientX", contact.UpId);
            Assert.AreEqual("1999-04-03T22:00:00.0Z", contact.CrDate);
            Assert.AreEqual("1999-12-03T09:00:00.0Z", contact.UpDate);
            Assert.AreEqual("2000-04-08T09:00:00.0Z", contact.TrDate);

            Assert.AreEqual("2fooBAR", contact.Password);
            Assert.AreEqual(Contact.DiscloseFlags.All & ~Contact.DiscloseFlags.Voice & ~Contact.DiscloseFlags.Email, contact.DiscloseMask);

            Assert.AreEqual("ABC-12345", response.ClientTransactionId);
            Assert.AreEqual("54322-XYZ", response.ServerTransactionId);
        }
Пример #6
0
        public static ContactInfoResponse DAOToResponse(ContactInfoDAO data)
        {
            ContactInfoResponse response = new ContactInfoResponse();

            response.ContactInfoId = data.ContactInfoId;
            response.Email         = data.Email;
            response.Name          = data.Name;
            response.Telephone     = data.Telephone;
            if (data.TelephoneAlt != null)
            {
                response.TelephoneAlt = data.TelephoneAlt;
            }
            response.Street     = data.Street;
            response.City       = data.City;
            response.Country    = data.Country;
            response.PostalCode = data.PostalCode;

            return(response);
        }
Пример #7
0
        public async Task <ActionResult <ContactInfoResponse> > GetById(long id)
        {
            IFlurlResponse response = await $"{URLConstants.ContactAPIURL}/api/contacts/{id}".GetAsync();

            if (response.StatusCode == 404)
            {
                return(NotFound());
            }
            else if (response.StatusCode >= 500)
            {
                return(StatusCode(500));
            }
            else if (response.StatusCode >= 400)
            {
                return(StatusCode(400));
            }

            ContactInfoResponse responseObject = await response.GetJsonAsync <ContactInfoResponse>();

            return(Ok(responseObject));
        }
Пример #8
0
        public void TestContactInfoResponse()
        {
            var eppResponse = new ContactInfoResponse(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>
<contact:infData xmlns:contact=""urn:ietf:params:xml:ns:contact-1.0"">
<contact:id>11aabb</contact:id>
<contact:roid>roid1</contact:roid>
.CA Registry Guide for Registrars: Version 4.02
Contacts
Contact Check
<contact:status s=""ok""/>
<contact:postalInfo type=""loc"">
<contact:name>Contact Middle-name LastName</contact:name>
<contact:addr>
<contact:street>123 Everywhere Street</contact:street>
<contact:city>Ottawa</contact:city>
<contact:sp>ON</contact:sp>
<contact:pc>K1R7S8</contact:pc>
<contact:cc>CA</contact:cc>
</contact:addr>
</contact:postalInfo>
<contact:email>[email protected]</contact:email>
<contact:clID>123</contact:clID>
<contact:crID>456</contact:crID>
<contact:crDate>2010-01-07T18:18:53.0Z</contact:crDate>
</contact:infData>
</resData>
<extension>
<cira:ciraInfo xmlns:cira=""urn:ietf:params:xml:ns:cira-1.0"">
<cira:language>en</cira:language>
<cira:cprCategory>CCT</cira:cprCategory>
<cira:individual>Y</cira:individual>
<cira:ciraAgreementVersion>2.0</cira:ciraAgreementVersion>
<cira:agreementTimestamp>2010-01-26T18:18:53.0Z</cira:agreementTimestamp>
<cira:originatingIpAddress>192.168.45.59</cira:originatingIpAddress>
<cira:whoisDisplaySetting>PRIVATE</cira:whoisDisplaySetting>
</cira:ciraInfo>
</extension>
<trID>
<svTRID>CIRA-000108-0000000004</svTRID>
</trID>
</response>
</epp>
"));

            PrintResponse(eppResponse);
        }