Ejemplo n.º 1
0
        public IPStackLookupResponse Check(IPStackLookupRequest request)
        {
            var response = new IPStackLookupResponse();

            var cr = Client.Get($"check?access_key={Key}{request}");

            Finalize(response, cr);

            return(response);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }