Ejemplo n.º 1
0
        private static void AddSDLandTLDParameters(string hostname, QuerystringParameters querystringParameters)
        {
            var pieces = PartsOfDNSRecord.ExtractFromHostname(hostname);

            querystringParameters.Add("SLD", pieces.SecondLevelDomain);
            querystringParameters.Add("TLD", pieces.TopLevelDomain);
        }
Ejemplo n.º 2
0
        private XDocument GetApiResult(QuerystringParameters querystringParameters)
        {
            XDocument result;

            var url = string.Format("http://{0}/xml.response?{1}", _hostname, querystringParameters.AsQuerystring());

            using (var client = new WebClient())
            {
                var response = client.DownloadString(url);

                result = XDocument.Parse(response);
                var value = result.Root.Attribute("Status").Value;

                if (value == "ERROR")
                {
                    var ns        = GetNamecheapNamespace();
                    var seperator = "";
                    var message   = "";
                    foreach (var error in result.Root.Elements(ns + "Errors").SelectMany(e => e.Elements(ns + "Error")))
                    {
                        message = message + seperator
                                  + String.Format("Error reported by Namecheap webservice ({0}): {1}",
                                                  error.Attribute("Number").Value,
                                                  error.Value);

                        seperator = ", ";
                    }

                    throw new Exception(message);
                }
                else if (value != "OK")
                {
                    throw new Exception("Namecheap service call failed");
                }
            }

            return(result);
        }