using DataEntity.Share;
|
using DriverLib.Engine;
|
using HxSocket;
|
using System;
|
using System.Collections.Generic;
|
using System.Configuration;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Reflection;
|
using System.Windows;
|
using System.Windows.Media;
|
using System.Xml;
|
using XCommon;
|
using XCommon.Log;
|
using XCore;
|
using XHandler.Class;
|
using XHandler.Controls.Run.Com;
|
using XHandler.View;
|
using XHandler.View.MethodProperty;
|
using XImagingXhandler.XDAL;
|
|
namespace XHandler.Controls
|
{
|
public class VariableImportControl
|
{
|
VariableImportBll variableImportBll = new VariableImportBll();
|
string strCurrentCulture = "";
|
public RunWnd launchView = null;
|
public VariableImportControl(string strCurrentCulture)
|
{
|
this.strCurrentCulture = strCurrentCulture;
|
}
|
|
#region 执行文件导入变量,返回结果字符串
|
public bool ExecuteVariableImport(XmlNode methodNode)
|
{
|
bool result = true;
|
string methodName = methodNode.SelectSingleNode("name").InnerText;
|
if (launchView._cancelSource.IsCancellationRequested)
|
{
|
result = false;
|
return result;
|
}
|
if (strCurrentCulture.Equals("zh-CN"))
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】> Xhandler: 【" + methodName + "】" + Properties.MachineRunResource.strStart.ToString());
|
}
|
else
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】> Xhandler: 【" + methodName + "】start:");
|
}
|
|
#region 数据准备
|
string filePath = methodNode.SelectSingleNode("filePath").InnerText;
|
MethodVariableImport methodVariableImport = variableImportBll.GenerateMethodVariableImportDataByXmlNode(methodNode);//获取移液表
|
methodVariableImport.transferDataTable = GetFileData(methodName, methodNode.SelectSingleNode("filePath").InnerText);
|
#endregion
|
|
if(methodVariableImport.transferDataTable!=null)
|
{
|
foreach(DataRow dataRow in methodVariableImport.transferDataTable.Rows)
|
{
|
Variable variable = new Variable();
|
variable.variablename = dataRow["paraName"].ToString();
|
variable.variableinitval = dataRow["paraValue"].ToString();
|
variable.variablecurval = variable.variableinitval;
|
|
//排除重复
|
var query=launchView.gloadVariable.FirstOrDefault(x => x.variablename.Equals(variable.variablename));
|
if (query != null)
|
{
|
if (strCurrentCulture.Equals("zh-CN"))
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】" + Properties.VariableImportResource.strVariableImportNameRepeat.ToString());
|
LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】" + Properties.VariableImportResource.strVariableImportNameRepeat.ToString());
|
}
|
else
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】Variable name is repeat.");
|
LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】Variable name is repeat.");
|
}
|
return false;
|
}
|
else
|
{
|
launchView.gloadVariable.Push(variable);
|
}
|
}
|
}
|
if (strCurrentCulture.Equals("zh-CN"))
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】" + Properties.MachineRunResource.strEnd.ToString());
|
LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】" + Properties.MachineRunResource.strEnd.ToString());
|
}
|
else
|
{
|
launchView.AddLogs("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】end.");
|
LoggerRunHelper.InfoLog("【" + DateTime.Now.ToString("HH:mm:ss:fff") + "】>Xhandler: 【" + methodName + "】end.");
|
}
|
return result;
|
}
|
#endregion
|
|
#region 加载文件数据
|
/// <summary>
|
/// 加载文件数据
|
/// </summary>
|
/// <param name="methodName"></param>
|
/// <param name="file"></param>
|
/// <returns></returns>
|
private DataTable GetFileData(string methodName, string file)
|
{
|
DataTable transferData = null;
|
if (!File.Exists(file))
|
{
|
if (strCurrentCulture.Equals("zh-CN"))
|
{
|
launchView.AddLogs($"【{DateTime.Now.ToString("HH:mm:ss:fff")}】> Xhandler: 【{methodName}】{Properties.TransferFileResource.strFileNotExists} {file}");
|
}
|
else
|
{
|
launchView.AddLogs($"【{DateTime.Now.ToString("HH:mm:ss:fff")}】> Xhandler: 【{methodName}】file not exists: {file}");
|
}
|
|
return transferData;
|
}
|
|
string ext = Path.GetExtension(file);
|
if (string.Compare(ext, ".csv", true) == 0)
|
{
|
transferData = ExcelAndCsvHelper.GetDataTableFromCsvFile(file, false);
|
}
|
else
|
{
|
transferData = ExcelAndCsvHelper.GetDataTableFromExcelFile(file, true);
|
}
|
|
return transferData;
|
}
|
#endregion
|
}
|
}
|