using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Model.Entity;
using Newtonsoft.Json;
namespace langguanApi.Service
{
    [ServiceInjection(InjectionType.Transient)]
    /// 
    /// 接收数据服务
    /// 
    public class ReceiveDataService
    {
        public ReceiveDataService()
        {
        }
        /// 
        /// 接收数据
        /// 
        /// 
        /// 
        public async Task ReceiveData(ReceiveDto jsonData)
        {
            try
            {
                //TODO: 接收到数据后处理数据类型,1 门禁 ,2,tsp,3 地磅, 
                switch (jsonData.dataType)
                {
                    case 1:
                        //TODO:  1门禁
                        var accessData = JsonConvert.DeserializeObject(jsonData.content);
                        var _transportservice = ServiceLocator.Instance.GetService();
                        await _transportservice.addTransport(accessData);
                        break;
                    case 2:
                        //TODO: 2 tsp
                        var LedgerData = JsonConvert.DeserializeObject(jsonData.content);
                        var _service = ServiceLocator.Instance.GetService();
                        await _service.Add(LedgerData, null);
                        break;
                    case 3:
                        //TODO: 3 地磅
                        var truckScalesData = JsonConvert.DeserializeObject(jsonData.content);
                        var _TruckScalesService = ServiceLocator.Instance.GetService();
                        await _TruckScalesService.AddTruckScales(truckScalesData);
                        break;
                    case 4:
                        //TODO: 4  地磅
                        break;
                }
            }
            catch (Exception ex)
            {
                return new ApiResult() { code = 1, msg = ex.Message };
            }
            return new ApiResult() { code = 0, msg = "success" };
        }
    }
}