using ivf_tl_Entity.Entity;
using ivf_tl_Entity.Entity.balance;
using ivf_tl_Entity.Entity.Mark;
using ivf_tl_Entity.Entity.Result;
using ivf_tl_Entity.Enums;
using ivf_tl_Entity.Pic;
using ivf_tl_Entity.Response;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ivf_tl_Service.HttpProvider
{
public class PicProvider
{
LogService LogService { get; set; }
HttpServiceCall httpServiceCall1 { get; set; }
public PicProvider(HttpServiceCall _httpServiceCall, LogService _logService)
{
httpServiceCall1 = _httpServiceCall;
LogService = _logService;
}
private void ExLog(Exception ex, string name)
{
LogService.ExceptionLog(ex, $"PicProvider.{name}", LogEnum.RunException);
}
private void ErrorLog(string message, LogEnum logType)
{
LogService.TLLog($"PicProvider.{message}", logType);
}
///
/// 设备数据接口 详情-图片查看(获取原图)
///
///
///
///
///
///
public List GetImageSourceApi(long embryoId, int houseSn, int pictureLayer, string tlSn)
{
string funcName = "GetImageSourceApi";
try
{
string url = "/api/businessManage/pc/resource/getSourcePictures";
string body = JsonConvert.SerializeObject(new
{
embryoId = embryoId,
houseSn = houseSn,
pictureLayer = pictureLayer,
tlSn = tlSn,
});
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new List();
var rs = JsonConvert.DeserializeObject>>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return new List();
}
if (rs.data != null && rs.data.Any()) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new List();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new List();
}
}
///
/// 设备数据接口 详情-图片查看(获取原图)分页
///
///
///
///
///
///
public SourcePicPageResult GetImageSourcePageApi(long embryoId, int houseSn, int pictureLayer, string tlSn, int current, int size, List photoBoxSetting1s)
{
string funcName = "GetImageSourcePageApi";
try
{
string url = "/api/businessManage/pc/resource/getSourcePicturesByPage";
string body = null;
if (photoBoxSetting1s.Any())
{
body = JsonConvert.SerializeObject(new
{
embryoId = embryoId,
houseSn = houseSn,
pictureLayer = pictureLayer,
tlSn = tlSn,
current,
size,
searchButtons = photoBoxSetting1s,
});
}
else
{
body = JsonConvert.SerializeObject(new
{
embryoId = embryoId,
houseSn = houseSn,
pictureLayer = pictureLayer,
tlSn = tlSn,
current,
size
});
}
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new SourcePicPageResult();
var rs = JsonConvert.DeserializeObject>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return new SourcePicPageResult();
}
if (rs.data != null) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new SourcePicPageResult();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new SourcePicPageResult();
}
}
///
/// 设备数据接口 患者管理-详情-获取指定指定well的指定图层图片
///
///
///
///
///
///
///
public List SwitchVideoPictureLayersApi(string tlsn, int housesn, long dishId, List wellList, List layerList)
{
string funcName = "SwitchVideoPictureLayersApi";
try
{
string url = "/api/businessManage/pc/resource/switchVideoPictureLayers";
string body = JsonConvert.SerializeObject(new
{
tlSn = tlsn,
houseSn = housesn,
id = dishId,
wellSnList = wellList,
pictureLayer = layerList
});
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new List();
var rs = JsonConvert.DeserializeObject>>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}接口返回失败 {resultString}", LogEnum.RunError);
return new List();
}
if (rs.data != null) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new List();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new List();
}
}
public bool DownloadSelectPicturesApi(string tlSn, int houseSn, List ids, string fileName)
{
string funcName = "DownloadSelectPicturesApi";
try
{
string url = "/api/businessManage/pc/resource/downloadSelectPictures";
string body = JsonConvert.SerializeObject(new
{
tlSn = tlSn,
houseSn = houseSn,
ids = ids,
});
return httpServiceCall1.callWebService(url, body, fileName);
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
///
/// 下载图片
///
///
///
///
public bool DownloadFileApi(string tlSn, int houseSn, long id, string newFile)
{
string funcName = "DownloadFileApi";
try
{
return httpServiceCall1.DownLoadFileAsync($"/api/businessManage/pc/resource/downloadPicture?tlSn={tlSn}&houseSn={houseSn}&ids={id}", newFile).GetAwaiter().GetResult() == 1;
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
///
/// 下载指定well - 指定图层所有图片
///
///
public bool DownloadLayerPicApi(string body, string newFile,string ss)
{
string funcName = "DownloadLayerPicApi";
try
{
string url = "/api/businessManage/pc/resource/downloadPictures";
return httpServiceCall1.callWebService(url, body, newFile);
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
///
/// 下载指定well - 指定图层所有图片
///
///
public async Task DownloadLayerPicApi(string tlsn,int housesn,int pic,List ids, string newFile)
{
string funcName = "DownloadLayerPicApi";
try
{
string url = $"/api/businessManage/pc/resource/downloadPictures?houseSn={housesn}&ids={string.Join(",",ids)}&pictureLayer={pic}&tlSn={tlsn}";
url = url.Replace("+", "%2B");
url = url.Replace(",", "%2C");
//var a = await httpServiceCall1.DownLoadFile(url, newFile);
return true;
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
///
/// 下载指定well - 指定图层所有图片
///
///
public async Task DownloadApi(string url, string newFile)
{
string funcName = "DownloadLayerPicApi";
try
{
url = url.Replace("+", "%2B");
url = url.Replace(",", "%2C");
//var a = await httpServiceCall1.DownLoadFile(url, newFile);
return true;
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
///
/// 下载指定well - 指定图层所有图片
///
///
public bool DownloadLayerVideoApi(string body, string newFile)
{
string funcName = "DownloadLayerVideoApi";
try
{
string url = "/api/businessManage/pc/resource/downloadVideos";
return httpServiceCall1.callWebService(url, body, newFile);
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
public List GetPictureViewApi(string tlSn,int houseSn,long embryoId,int pictureLayer)
{
string funcName = "GetPictureViewApi";
try
{
string url = "/api/businessManage/pc/resource/getPictures";
string body = JsonConvert.SerializeObject(new { tlSn, houseSn, embryoId , pictureLayer });
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new List();
var rs = JsonConvert.DeserializeObject>>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return new List();
}
if (rs.data != null && rs.data.Any()) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new List();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new List();
}
}
public int GetSourcePicturesTotalLayerApi(string tlSn, int houseSn, long embryoId)
{
string funcName = "GetSourcePicturesTotalLayerApi";
try
{
string url = "/api/businessManage/pc/resource/getSourcePicturesTotalLayer";
string body = JsonConvert.SerializeObject(new { tlSn, houseSn, embryoId });
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return 0;
var rs = JsonConvert.DeserializeObject>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return 0;
}
if (string.IsNullOrEmpty(rs.data))
{
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return 0;
}
if (int.TryParse(rs.data, out int newValue))
{
return newValue;
}
else
{
ErrorLog($"{funcName}接口返回成功但是结果转int类型失败 {resultString}", LogEnum.RunError);
return 0;
}
}
catch (Exception ex)
{
ExLog(ex, funcName);
return 0;
}
}
public List GetPositionApi(string tlSn, int houseSn, List wellSn)
{
string funcName = "GetPositionApi";
try
{
string url = "/api/tl/control/setting/house/autofocus/position";
string body = JsonConvert.SerializeObject(new { tlSn, houseSn, wellSn });
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new List();
var rs = JsonConvert.DeserializeObject>>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return new List();
}
if (rs.data != null && rs.data.Any()) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new List();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new List();
}
}
public AutoFocusResult GetAutofocusPicturesApi(string tlSn, int houseSn, long embryoId)
{
string funcName = "GetAutofocusPicturesApi";
try
{
string url = "/api/businessManage/pc/resource/getAutofocusPictures";
string body = JsonConvert.SerializeObject(new { tlSn, houseSn, embryoId });
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return new AutoFocusResult();
var rs = JsonConvert.DeserializeObject>(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return new AutoFocusResult();
}
if (rs.data != null) return rs.data;
ErrorLog($"{funcName}接口返回成功但是无数据 {resultString}", LogEnum.RunError);
return new AutoFocusResult();
}
catch (Exception ex)
{
ExLog(ex, funcName);
return new AutoFocusResult();
}
}
public bool UpdateImmediatelyApi(string tlSn, int houseSn, List wellFocusStartingPointList)
{
string funcName = "UpdateImmediatelyApi";
try
{
string url = "/api/tl/control/setting/well/immediately";
string body = JsonConvert.SerializeObject(new { tlSn, houseSn, wellFocusStartingPointList });
string resultString = httpServiceCall1.callWebService(url, body);
if (string.IsNullOrEmpty(resultString)) return false;
var rs = JsonConvert.DeserializeObject(resultString);
if (!rs.success)
{
ErrorLog($"{funcName}服务器返回失败 {resultString}", LogEnum.RunError);
return false;
}
return true;
}
catch (Exception ex)
{
ExLog(ex, funcName);
return false;
}
}
}
}