private static void AddSDLandTLDParameters(string hostname, QuerystringParameters querystringParameters) { var pieces = PartsOfDNSRecord.ExtractFromHostname(hostname); querystringParameters.Add("SLD", pieces.SecondLevelDomain); querystringParameters.Add("TLD", pieces.TopLevelDomain); }
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); }