using System.Net; using Dlhis.Jip.Api.Responses; using Kurisu.RemoteCall.Abstractions; using Mapster; using Newtonsoft.Json; namespace Dlhis.Jip.Api.ResultHandlers; public class DHRResultHandler : IRemoteCallResultHandler { public TResult Handle(HttpStatusCode statusCode, string responseBody) { var apiResult = JsonConvert.DeserializeObject>(responseBody); var isSuccessStatusCode = ((int)statusCode >= 200) && ((int)statusCode <= 299); if (!isSuccessStatusCode || apiResult?.Code != 200) { if (!string.IsNullOrEmpty(apiResult?.Message)) { throw new Exception(apiResult.Message); } throw new HttpRequestException(statusCode + " " + (int)statusCode); } return responseBody.Adapt(); } }