diff --git a/Src/Dlhis.Jip.Api/ResultHandlers/DHRResultHandler.cs b/Src/Dlhis.Jip.Api/ResultHandlers/DHRResultHandler.cs index 0ca443f9..6a0f35c4 100644 --- a/Src/Dlhis.Jip.Api/ResultHandlers/DHRResultHandler.cs +++ b/Src/Dlhis.Jip.Api/ResultHandlers/DHRResultHandler.cs @@ -12,9 +12,16 @@ public class DHRResultHandler : IRemoteCallResultHandler public TResult Handle(HttpStatusCode statusCode, string responseBody) { var apiResult = JsonConvert.DeserializeObject>(responseBody); - if (statusCode != HttpStatusCode.OK || apiResult.Code != 200) + + var isSuccessStatusCode = ((int)statusCode >= 200) && ((int)statusCode <= 299); + if (!isSuccessStatusCode || apiResult.Code != 200) { - throw new Exception(apiResult?.Message); + if (!string.IsNullOrEmpty(apiResult?.Message)) + { + throw new Exception(apiResult.Message); + } + + throw new HttpRequestException(statusCode + " " + (int)statusCode); } return responseBody.Adapt();