public static NameSuggestResult Parse(string text) { try { var response = new NameSuggestResult(); var doc = XDocument.Parse(text); var responseTime = doc.XPathSelectElement(@"//item[@key=""request_response_time""]"); var lookupArray = doc.XPathSelectElement(@"//item[@key=""lookup""]/dt_assoc/item[@key=""items""]/dt_array"); var suggestionArray = doc.XPathSelectElement(@"//item[@key=""suggestion""]/dt_assoc/item[@key=""items""]/dt_array"); response.ResponseTime = TimeSpan.FromSeconds((float)responseTime); foreach (var item in ResponseHelper.ReadArray(lookupArray)) { response.Lookup.Add(new DomainItem(item["domain"], item["status"])); } foreach (var item in ResponseHelper.ReadArray(suggestionArray)) { response.Suggestions.Add(new DomainItem(item["domain"], item["status"])); } return(response); } catch (Exception ex) { throw new Exception(ex.Message + "/ " + text); } }
public async Task <NameSuggestResult> NameSuggestAsync(NameSuggestRequest request) => NameSuggestResult.Parse(await SendAsync(request).ConfigureAwait(false));