private static CulqiException BuildCulqiException(CulqiResponse response) { CulqiError error = null; try { error = JsonConvert.DeserializeObject <CulqiError>(response.Content); } catch (Newtonsoft.Json.JsonException) { return(BuildInvalidResponseException(response)); } if (error == null) { return(BuildInvalidResponseException(response)); } var culqiError = CulqiError.FromJson(response.Content); culqiError.CulqiResponse = response; return(new CulqiException(response.StatusCode, culqiError, culqiError.Message ?? culqiError.UserMessage) { CulqiResponse = response }); }
private static CulqiException BuildInvalidResponseException(CulqiResponse response) { return(new CulqiException(response.StatusCode, null, $"Invalid response object from API: \"{response.Content}\"") { CulqiResponse = response, }); }
private static T ProcessResponse <T>(CulqiResponse response) where T : ICulqiEntity { if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created) { throw BuildCulqiException(response); } T obj; try { obj = CulqiEntity.FromJson <T>(response.Content); } catch (Newtonsoft.Json.JsonException) { throw BuildInvalidResponseException(response); } obj.CulqiResponse = response; return(obj); }