using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XImagingXhandler.XDAL;
using System.Data;
using XCoreBLL.Resource;
using System.Xml;
using XCommon;
using DataEntity.Share;
using DataRWDAL;
using DataEntity;
namespace XCoreBLL
{
///
/// 文件抓板转移数据处理类
///
public class FileMoveLabwareBll
{
WellFileCalc wellFileCalc = new WellFileCalc();
#region 获取DataTable的表头名称数据集合
///
/// 获取DataTable的表头名称数据集合
///
///
///
public List GetTransferFileHeaders(DataTable dataTable)
{
List transferFileHeaders = new List();
TransferFileHeader transferFileHeader = new TransferFileHeader();
transferFileHeader.header_id = "0";
transferFileHeader.header_name = "请选择";
transferFileHeaders.Add(transferFileHeader);
for (int i = 0; i < dataTable.Columns.Count; i++)
{
transferFileHeader = new TransferFileHeader();
transferFileHeader.header_id = dataTable.Columns[i].ColumnName;
transferFileHeader.header_name = dataTable.Columns[i].ColumnName;
transferFileHeaders.Add(transferFileHeader);
}
return transferFileHeaders;
}
#endregion
public MethodFileMoveLabware GenerateMethodFileMoveLabwareDataByXmlNode(XmlNode xmlNode)
{
MethodFileMoveLabware methodFileMoveLabware = new MethodFileMoveLabware();
methodFileMoveLabware.isrun = xmlNode.SelectSingleNode("isrun").InnerText;
methodFileMoveLabware.status = xmlNode.SelectSingleNode("status").InnerText;
methodFileMoveLabware.name = xmlNode.SelectSingleNode("name").InnerText;
methodFileMoveLabware.comment = xmlNode.SelectSingleNode("comment")!=null? xmlNode.SelectSingleNode("comment").InnerText:"";
methodFileMoveLabware.label = xmlNode.SelectSingleNode("label").InnerText;
methodFileMoveLabware.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText;
methodFileMoveLabware.armText = xmlNode.SelectSingleNode("arm/text").InnerText;
methodFileMoveLabware.armValue = xmlNode.SelectSingleNode("arm/value").InnerText;
methodFileMoveLabware.filePath = xmlNode.SelectSingleNode("filePath").InnerText;
methodFileMoveLabware.beginLine = Convert.ToInt32(xmlNode.SelectSingleNode("beginLine").InnerText);
methodFileMoveLabware.transferDataTable = GenerateTransferFileDataTable(xmlNode);
methodFileMoveLabware.pickLattice = xmlNode.SelectSingleNode("pickLattice").InnerText;
methodFileMoveLabware.pickColumn = xmlNode.SelectSingleNode("pickColumn").InnerText;
methodFileMoveLabware.pickWell = xmlNode.SelectSingleNode("pickWell").InnerText;
methodFileMoveLabware.pickPart = xmlNode.SelectSingleNode("pickPart").InnerText;
methodFileMoveLabware.pickDirect = xmlNode.SelectSingleNode("pickDirect").InnerText;
methodFileMoveLabware.placeLattice = xmlNode.SelectSingleNode("placeLattice").InnerText;
methodFileMoveLabware.placeColumn = xmlNode.SelectSingleNode("placeColumn").InnerText;
methodFileMoveLabware.placeWell = xmlNode.SelectSingleNode("placeWell").InnerText;
methodFileMoveLabware.placeDirect = xmlNode.SelectSingleNode("placeDirect").InnerText;
methodFileMoveLabware.transportMode = Convert.ToInt32(xmlNode.SelectSingleNode("transportMode").InnerText);
methodFileMoveLabware.transportCount = Convert.ToInt32(xmlNode.SelectSingleNode("transportCount").InnerText);
return methodFileMoveLabware;
}
public DataTable GenerateTransferFileDataTable(XmlNode xmlNode)
{
XmlNode xmlNode2 = xmlNode.SelectSingleNode("transferDataTable");
DataTable dataTable = new DataTable();
foreach (XmlNode childNode in xmlNode2.ChildNodes)
{
DataColumn dataColumn = new DataColumn();
dataColumn.ColumnName = childNode.Attributes["columnname"].Value.ToString();
dataTable.Columns.Add(dataColumn);
}
if (xmlNode2.ChildNodes[0] != null)
{
for (int i = 0; i < xmlNode2.ChildNodes[0].ChildNodes.Count; i++)
{
DataRow dataRow = dataTable.NewRow();
for (int j = 0; j < xmlNode2.ChildNodes.Count; j++)
{
dataRow[j] = xmlNode2.ChildNodes[j].ChildNodes[i].InnerText;
}
dataTable.Rows.Add(dataRow);
}
}
return dataTable;
}
}
}