/// <summary> /// Throws an exception if the API call failed /// </summary> /// <param name="responseMessage">The ResponseMessage returned from the API</param> private void EnsureYouMailResponse(HttpResponseMessage responseMessage) { if (!responseMessage.IsSuccessStatusCode) { string message = null; YouMailResponse apiError = null; var messageStream = responseMessage.GetResponseStream(); if (messageStream != null) { try { apiError = DeserializeObject <YouMailResponse>(messageStream); message = apiError.GetErrorMessage(); if (message == null) { message = apiError.LongMessage; } } catch { } } throw new YouMailException(message, apiError, responseMessage.StatusCode, null); } }
/// <summary> /// Convert a WebException into a YouMailException /// </summary> /// <param name="e"></param> /// <returns></returns> private YouMailException ConvertException(WebException e) { if (e is WebException) { WebException we = e as WebException; if (we.Response is HttpWebResponse) { var webResponse = we.Response as HttpWebResponse; var s = webResponse.GetResponseStream(); YouMailResponse error = null; try { error = DeserializeObject <YouMailResponse>(s); return(new YouMailException(error.GetErrorMessage(), error, webResponse.StatusCode, e)); } catch { } } } return(null); }