using Newtonsoft.Json;
using System.Collections.Generic;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_IBasicService;
using WIDESEA_DTO.MES;
namespace WIDESEA_BasicService
{
///
/// MES服务实现 - 陕西顷刻能源科技MES系统对接
///
public class MesService : IMesService
{
private readonly HttpClientHelper _httpClient;
private readonly string _baseUrl;
private readonly string _authorization;
private const string BindContainerPath = "/EquipmentService/api/v1/BindContainer";
private const string UnBindContainerPath = "/EquipmentService/api/v1/UnBindContainer";
private const string ContainerNgReportPath = "/EquipmentService/api/v1/ContainerNgReport";
private const string InboundInContainerPath = "/EquipmentService/api/v1/InboundInContainer";
private const string OutboundInContainerPath = "/EquipmentService/api/v1/OutboundInContainer";
public MesService(HttpClientHelper httpClient)
{
_httpClient = httpClient;
_baseUrl = AppSettings.Get("MES:BaseUrl").TrimEnd('/');
_authorization = AppSettings.Get("MES:Authorization");
}
private HttpRequestConfig BuildConfig()
{
return new HttpRequestConfig
{
Headers = new Dictionary
{
{ "Authorization", _authorization }
},
TimeoutMs = 30000,
MaxRetryCount = 0,
EnableLogging = true
};
}
private HttpResponseResult Post(string url, T request)
{
string json = JsonConvert.SerializeObject(request);
return _httpClient.Post(url, json, "application/json", BuildConfig());
}
public HttpResponseResult BindContainer(BindContainerRequest request)
{
return Post(_baseUrl + BindContainerPath, request);
}
public HttpResponseResult UnBindContainer(UnBindContainerRequest request)
{
return Post(_baseUrl + UnBindContainerPath, request);
}
public HttpResponseResult ContainerNgReport(ContainerNgReportRequest request)
{
return Post(_baseUrl + ContainerNgReportPath, request);
}
public HttpResponseResult InboundInContainer(InboundInContainerRequest request)
{
return Post(_baseUrl + InboundInContainerPath, request);
}
public HttpResponseResult OutboundInContainer(OutboundInContainerRequest request)
{
return Post(_baseUrl + OutboundInContainerPath, request);
}
}
}