示例#1
0
        public void SetCustom(string sld, string tld, params string[] nameservers)
        {
            var query = new Query(_params)
                 .AddParameter("SLD", sld)
                 .AddParameter("TLD", tld)
                 .AddParameter("Nameservers", string.Join(",", nameservers));

            query.Execute("namecheap.domains.dns.setCustom");
        }
示例#2
0
        /// <summary>
        /// Sets email forwarding for a domain name.
        /// </summary>
        /// <param name="domain">The domain for which to set email forwarding.</param>
        /// <param name="request">The entire list of forwards to set up.</param>
        /// <exception cref="ApplicationException">
        /// Exception when the following problems are encountered:
        /// - 2019166	Domain not found
        /// - 2016166 Domain is not associated with your account
        /// - 2030288 Cannot complete this command as this domain is not using proper DNS servers
        /// - 2030166 Edit Permission for domain is not supported
        /// - 3013288 Too many records
        /// - 3031510 Error From Enom when Errorcount != 0
        /// - 3050900 Unknown error from Enom
        /// - 4022228 Unable to get nameserver list
        /// </exception>
        public void SetEmailForwarding(string domain, EmailForwarding[] request)
        {
            var query = new Query(_params)
                        .AddParameter("DomainName", domain);

            for (int i = 0; i < request.Length; i++)
            {
                query.AddParameter("MailBox" + (i + 1), request[i].MailBox);
                query.AddParameter("ForwardTo" + (i + 1), request[i].ForwardTo);
            }

            query.Execute("namecheap.domains.dns.setEmailForwarding");
        }
示例#3
0
        public DnsEmailForwardingResult GetEmailForwarding(string domain)
        {
            var query = new Query(_params);
            query.AddParameter("DomainName", domain);

            XDocument doc = query.Execute("namecheap.domains.dns.getEmailForwarding");

            var serializer = new XmlSerializer(typeof(DnsEmailForwardingResult), _ns.NamespaceName);

            using (var reader = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainDNSGetEmailForwardingResult").CreateReader())
            {
                return (DnsEmailForwardingResult)serializer.Deserialize(reader);
            }
        }
示例#4
0
        /// <summary>
        /// Retrieves DNS host record settings for the requested domain..
        /// </summary>
        /// <param name="sld">The second level domain, SLD, of the domain for which to get the hosts (the abc in abc.xyz).</param>
        /// <param name="tld">The top-level domain, TLD, of the domain for which to get the hosts (the xyz of abc.xyz).</param>
        /// <exception cref="ApplicationException">
        /// Exception when the following problems are encountered:
        /// - 2019166	Domain not found
        /// - 2030166	Edit permission for domain is not supported
        /// - 2030288	Cannot complete this command as this domain is not using proper DNS servers
        /// - 4023330	Unable to get DNS hosts from list
        /// - 3031510	Error From Enom when Errorcount != 0
        /// - 3050900	Unknown error from Enom
        /// - 3011288	Invalid name server specified
        /// - 5050900	Unhandled Exceptions
        /// </exception>
        public DnsHostResult GetHosts(string sld, string tld)
        {
            var query = new Query(_params)
                        .AddParameter("SLD", sld)
                        .AddParameter("TLD", tld);

            XDocument doc = query.Execute("namecheap.domains.dns.getHosts");

            var serializer = new XmlSerializer(typeof(DnsHostResult), _ns.NamespaceName);

            using (var reader = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainDNSGetHostsResult").CreateReader())
            {
                return((DnsHostResult)serializer.Deserialize(reader));
            }
        }
示例#5
0
        /// <summary>
        /// Gets email forwarding settings for the requested domain.
        /// </summary>
        /// <param name="domain">the domain for which to get forwarding settings.</param>
        /// <exception cref="ApplicationException">
        /// Exception when the following problems are encountered:
        /// - 2019166	Domain not found
        /// - 2030166	Edit permission for domain is not supported
        /// - 2030288	Cannot complete this command as this domain is not using proper DNS servers
        /// - 3031510	Error From Enom when Errorcount != 0
        /// - 3050900	Unknown error from Enom
        /// - 4022328	Unable to get EmailForwarding records from database
        /// - 3011288	Invalid nameserver
        /// - 5050900	Unhandled Exceptions
        /// </exception>
        public DnsEmailForwardingResult GetEmailForwarding(string domain)
        {
            var query = new Query(_params);

            query.AddParameter("DomainName", domain);

            XDocument doc = query.Execute("namecheap.domains.dns.getEmailForwarding");

            var serializer = new XmlSerializer(typeof(DnsEmailForwardingResult), _ns.NamespaceName);

            using (var reader = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainDNSGetEmailForwardingResult").CreateReader())
            {
                return((DnsEmailForwardingResult)serializer.Deserialize(reader));
            }
        }
示例#6
0
        public DnsListResult GetList(string sld, string tld)
        {
            var query = new Query(_params)
                 .AddParameter("SLD", sld)
                 .AddParameter("TLD", tld);

            XDocument doc = query.Execute("namecheap.domains.dns.getList");

            var serializer = new XmlSerializer(typeof(DnsListResult), _ns.NamespaceName);

            using (var reader = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainDNSGetListResult").CreateReader())
            {
                return (DnsListResult)serializer.Deserialize(reader);
            }
        }
        public DomainCreateResult Create(DomainCreateRequest domain)
        {
            var query = new Query(_params);

            foreach (var item in GetNamesAndValuesFromProperties(domain))
                query.AddParameter(item.Key, item.Value);

            XDocument doc = query.Execute("namecheap.domains.create");
            XElement result = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainCreateResult");

            var serializer = new XmlSerializer(typeof(DomainCreateResult), _ns.NamespaceName);
            using (var reader = result.CreateReader())
            {
                return (DomainCreateResult)serializer.Deserialize(reader);
            }
        }
示例#8
0
        public DomainCreateResult Create(DomainCreateRequest domain)
        {
            var query = new Query(_params);

            foreach (var item in GetNamesAndValuesFromProperties(domain))
            {
                query.AddParameter(item.Key, item.Value);
            }

            XDocument doc    = query.Execute("namecheap.domains.create");
            XElement  result = doc.Root.Element(_ns + "CommandResponse").Element(_ns + "DomainCreateResult");

            var serializer = new XmlSerializer(typeof(DomainCreateResult), _ns.NamespaceName);

            using (var reader = result.CreateReader())
            {
                return((DomainCreateResult)serializer.Deserialize(reader));
            }
        }
示例#9
0
        /// <summary>
        /// Sets DNS host records settings for the requested domain.
        /// </summary>
        /// <param name="secondLevelDomain">The second level domain, SLD, of the domain for which to set the hosts (the abc in abc.xyz).</param>
        /// <param name="topLevelDomain">The top-level domain, TLD, of the domain for which to set the hosts (the xyz of abc.xyz).</param>
        /// <param name="hostEntries">The list of hosts entries to set.
        /// These need to obey their respective DNS record type rules"
        /// correct IP address for A-records,
        /// domain (not IP) for CNAME, etc</param>
        /// <exception cref="ApplicationException">
        /// Exception when the following problems are encountered:
        /// - 2019166	Domain not found
        /// - 2016166	Domain is not associated with your account
        /// - 2030166	Edit permission for domain is not supported
        /// - 3013288, 4013288	Too many records
        /// - 3031510	Error From Enom when Errorcount != 0
        /// - 3050900	Unknown error from Enom
        /// - 4022288	Unable to get nameserver list
        /// </exception>
        public void SetHosts(string secondLevelDomain, string topLevelDomain, HostEntry[] hostEntries)
        {
            var query = new Query(_params);

            query.AddParameter("SLD", secondLevelDomain);
            query.AddParameter("TLD", topLevelDomain);

            for (int i = 0; i < hostEntries.Length; i++)
            {
                query.AddParameter("HostName" + (i + 1), hostEntries[i].HostName);
                query.AddParameter("Address" + (i + 1), hostEntries[i].Address);
                query.AddParameter("MxPref" + (i + 1), hostEntries[i].MxPref);
                query.AddParameter("RecordType" + (i + 1), Enum.GetName(typeof(RecordType), hostEntries[i].RecordType));

                if (!string.IsNullOrEmpty(hostEntries[i].Ttl))
                {
                    query.AddParameter("TTL" + (i + 1), hostEntries[i].Ttl);
                }
            }

            XDocument doc = query.Execute("namecheap.domains.dns.setHosts");
        }
示例#10
0
        public void SetHosts(DnsHostsRequest request)
        {
            var query = new Query(_params);

            query.AddParameter("SLD", request.SLD);
            query.AddParameter("TLD", request.TLD);

            for (int i = 0; i < request.HostEntries.Length; i++)
            {
                query.AddParameter("HostName" + (i + 1), request.HostEntries[i].HostName);
                query.AddParameter("Address" + (i + 1), request.HostEntries[i].Address);
                query.AddParameter("MxPref" + (i + 1), request.HostEntries[i].MxPref);
                query.AddParameter("RecordType" + (i + 1), Enum.GetName(typeof(RecordType), request.HostEntries[i].RecordType));

                if (!string.IsNullOrEmpty(request.HostEntries[i].Ttl))
                {
                    query.AddParameter("TTL" + (i + 1), request.HostEntries[i].Ttl);
                }
            }

            XDocument doc = query.Execute("namecheap.domains.dns.setHosts");
        }
        public void SetContacts(DomainContactsRequest contacts)
        {
            var query = new Query(_params);

            foreach (var item in GetNamesAndValuesFromProperties(contacts))
                query.AddParameter(item.Key, item.Value);

            XDocument doc = query.Execute("namecheap.domains.setContacts");
        }
示例#12
0
        public void SetEmailForwarding(string domain, EmailForwarding[] request)
        {
            var query = new Query(_params)
                .AddParameter("DomainName", domain);

            for (int i = 0; i < request.Length; i++)
            {
                query.AddParameter("MailBox" + (i + 1), request[i].MailBox);
                query.AddParameter("ForwardTo" + (i + 1), request[i].ForwardTo);
            }

            query.Execute("namecheap.domains.dns.setEmailForwarding");
        }
示例#13
0
        public void SetDefault(string sld, string tld)
        {
            var query = new Query(_params)
                 .AddParameter("SLD", sld)
                 .AddParameter("TLD", tld);

            query.Execute("namecheap.domains.dns.setDefault");
        }
示例#14
0
        public void SetHosts(DnsHostsRequest request)
        {
            var query = new Query(_params);
            query.AddParameter("SLD", request.SLD);
            query.AddParameter("TLD", request.TLD);

            for (int i = 0; i < request.HostEntries.Length; i++)
            {
                query.AddParameter("HostName" + (i + 1), request.HostEntries[i].HostName);
                query.AddParameter("Address" + (i + 1), request.HostEntries[i].Address);
                query.AddParameter("MxPref" + (i + 1), request.HostEntries[i].MxPref);
                query.AddParameter("RecordType" + (i + 1), Enum.GetName(typeof(RecordType), request.HostEntries[i].RecordType));

                if (!string.IsNullOrEmpty(request.HostEntries[i].Ttl))
                    query.AddParameter("TTL" + (i + 1), request.HostEntries[i].Ttl);
            }

            XDocument doc = query.Execute("namecheap.domains.dns.setHosts");
        }