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 加载文件数据 /// /// 加载文件数据 /// /// /// /// 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 } }