public IPStackLookupResponse Check(IPStackLookupRequest request) { var response = new IPStackLookupResponse(); var cr = Client.Get($"check?access_key={Key}{request}"); Finalize(response, cr); return(response); }
public async Task <IPStackLookupResponse> CheckAsync(IPStackLookupRequest request) { var response = new IPStackLookupResponse(); var cr = await Client.GetAsync($"check?access_key={Key}{request}"); Finalize(response, cr); return(response); }
private void Finalize(IPStackLookupResponse response, ApiResponse cr) { response.Copy(cr); response.WebResponse = cr; if (cr.IsSucceeded()) { if (!string.IsNullOrEmpty(cr.Result)) { try { response.Data = JsonConvert.DeserializeObject <IPStackLookupResult>(cr.Result); response.Succeeded(); } catch (Exception e) { try { response.Error = JsonConvert.DeserializeObject <IPStackLookupErrorResult>(cr.Result); if (response.Error != null && response.Error.error != null) { response.SetStatus(response.Error.error.type); } else { response.Errored(e); } } catch (Exception ex) { response.Faulted(ex); } } } else { response.SetStatus("EmptyResponse"); } } else { response.Failed(cr.Exception); } }