Files
jinko.yikatong/Src/Dlhis.Jip.Api/ResultHandlers/DHRResultHandler.cs

28 lines
852 B
C#

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<TResult>(HttpStatusCode statusCode, string responseBody)
{
var apiResult = JsonConvert.DeserializeObject<DHRResponse<object>>(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<TResult>();
}
}