123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- using OTSDataType;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using OTSModelSharp.DTLBase;
- using System.Data;
- using System.Drawing;
- using OTSCOMMONCLR;
- namespace OTSModelSharp
- {
- public class CPosXrayInfoDB :CSQLiteDB
- {
- protected static NLog.Logger logger = null;
- protected CSQLiteTable m_tableInfo = new CSQLiteTable();
- List<CPosXrayClr> m_listPosXrayInfo=new List<CPosXrayClr>();
-
- public CPosXrayInfoDB(IDBStoreBase _conStr, CSQLiteTable _table) : base(_conStr, _table)
- {
- }
- public List<CPosXrayClr> GetXrayInfoListByFieldId(long a_nFieldId)
- {
- List<CPosXrayClr> xrayPointInfoVec =new List<CPosXrayClr>();
- if (m_listPosXrayInfo!=null)
- {
- foreach(CPosXrayClr xrayPointInfo in m_listPosXrayInfo) //for (auto & xrayPointInfo : m_listPosXrayInfo)
- {
- if (xrayPointInfo.GetScanFieldId() == (System.UInt32)a_nFieldId)
- {
- xrayPointInfoVec.Add(xrayPointInfo);
- }
- }
- }
- else
- {
- DataTable tableQuery = GetQueryByFieldId(a_nFieldId);
- if (tableQuery!=null)
- {
- return xrayPointInfoVec;
- }
- xrayPointInfoVec = ReadXrayPointInfoListByQuery(tableQuery);
- }
- return xrayPointInfoVec;
- }
- public List<CPosXrayClr> GetXrayInfoList(bool a_bForce, int fldId)
- {
- if (a_bForce)
- {
- m_listPosXrayInfo.Clear();
- }
- if (m_listPosXrayInfo.Count() == 0)
- {
- GetXrayInfoListByFieldId(fldId);
- }
- return m_listPosXrayInfo;
- }
- public bool SaveXrayInfoList(List<CPosXrayClr> a_xrayPointList)
- {
-
- var tableInfoPtr = GetTableInfo();
- if (tableInfoPtr==null)
- {
- return false;
- }
- var datastorePtr = GetDatastore();
- if (datastorePtr==null)
- {
- return false;
- }
- CSQLiteTable cSQLiteTable = new CSQLiteTable();
- string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
- string sSQLCommand = "";
- foreach (CPosXrayClr xrayPointInfo in a_xrayPointList)
- {
- System.Drawing.Point pos = (System.Drawing.Point)xrayPointInfo.GetPosition();
- var qtyData = xrayPointInfo.GetElementQuantifyData();
- var elenum = qtyData.Count;
- sSQLCommand =string.Format( sInsertFormat,
- (xrayPointInfo.GetIndex()),
- (pos.X) ,
- (pos.Y) ,
- (xrayPointInfo.GetScanFieldId()) ,
- (xrayPointInfo.GetPartTagId()) ,
- (xrayPointInfo.GetFeatureId()) ,
- (elenum));
-
- if (!datastorePtr.RunCommand(sSQLCommand, false))
- {
-
- return false;
- }
- }
-
- return true;
- }
-
-
- //public bool DeleteXrayListByFieldId(long a_nFieldId)
- //{
- // if (m_listPosXrayInfo != null)
- // {
- // for (int i = 0; i < m_listPosXrayInfo.Count; i++)
- // {
- // if (m_listPosXrayInfo[i].GetScanFieldId() == (uint)a_nFieldId)
- // {
- // m_listPosXrayInfo.Remove(m_listPosXrayInfo[i]);
- // }
- // }
- // }
- // var tableInfoPtr = GetTableInfo();
- // if (tableInfoPtr == null)
- // {
- // return false;
- // }
- // var datastorePtr = GetDatastore();
- // if (datastorePtr == null)
- // {
- // return false;
- // }
- // string sTableName = tableInfoPtr.GetTableName();
- // if (!datastorePtr.IsTableExists(sTableName))
- // {
- // logger.Trace("Table %s not exist" + sTableName);
- // return true;
- // }
- // string sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CPosXrayInfoTable.ColumnID.N_FIELD_ID - (int)CPosXrayInfoTable.ColumnID.MIN);
-
- // string sSQLCommand = "DELETE FROM \'{0}\' WHERE {1} = {2}";
- // sSQLCommand = string.Format(sSQLCommand, tableInfoPtr.GetTableName(), sFieldIdColumnName, a_nFieldId);
- // return datastorePtr.RunCommand(sSQLCommand);
- //}
-
- protected bool ReadXrayPointInfoList()
- {
- var st = GetDatastore();
- var t = GetTableInfo();
- DataTable query = st.QueryByTableNameForDataTable(t.GetTableName(), "");
- if (query!=null)
- {
- return false;
- }
- m_listPosXrayInfo = ReadXrayPointInfoListByQuery(query);
- return true;
- }
- protected List<CPosXrayClr> ReadXrayPointInfoListByQuery(DataTable a_query)
- {
- List<CPosXrayClr> xrayPointInfoVec =new List<CPosXrayClr>();
- //xrayPointInfoVec.Clear();
- //int nRowId = 0;
- //int nWrongItems = 0;
- //while (!a_query.IsEOF())
- //{
- // CPosXrayClr xrayPointInfo = ReadXrayPointInfo(a_query);
- // if (xrayPointInfo!=null)
- // {
- // logger.Info("Read xray point info item failed: row id: %d");
- // nWrongItems++;
- // }
- // else
- // {
- // xrayPointInfoVec.Add(xrayPointInfo);
- // }
- // a_query.NextRow();
- // nRowId++;
- //}
-
- for (int i=0; i< a_query.Rows.Count;i++)
- {
- CPosXrayClr xrayPointInfo = ReadXrayPointInfo(a_query);
- if(xrayPointInfo != null)
- {
- logger.Info("Read xray point info item failed: row id: %d",i);
- //nWrongItems++;
- }
- else
- {
- xrayPointInfoVec.Add(xrayPointInfo);
- }
- //a_query.NextRow();
- //nRowId++;
- }
-
- return xrayPointInfoVec;
- }
- protected CPosXrayClr ReadXrayPointInfo(DataTable a_query)
- {
- int nCol;
- //CPosXrayClr CPosXrayClr = new CPosXrayClr();
- CPosXrayClr xrayPointPtr = new CPosXrayClr();
- nCol = (int)CPosXrayInfoTable.ColumnID.N_INDEX - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetIndex((int)a_query.Rows[nCol][0]);
- System.Drawing.Point xrayPosition =new System.Drawing.Point();
- nCol = (int)CPosXrayInfoTable.ColumnID.N_POS_X - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPosition.X = (int)a_query.Rows[nCol][0];
- nCol = (int)CPosXrayInfoTable.ColumnID.N_POS_Y - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPosition.Y = (int)a_query.Rows[nCol][0];
- xrayPointPtr.SetPosition(xrayPosition);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_FIELD_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetScanFieldId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_PARTICLE_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetPartTagId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_FEATURE_ID - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetFeatureId((int)a_query.Rows[nCol][0]);
- nCol = (int)CPosXrayInfoTable.ColumnID.N_ELEMENT_NUM - (int)CPosXrayInfoTable.ColumnID.MIN;
- xrayPointPtr.SetElementNum((int)a_query.Rows[nCol][0]);
- return xrayPointPtr;
- }
- protected DataTable GetQueryByFieldId( long a_nFieldId)
- {
- CSQLiteTable query =new CSQLiteTable();
- var datastorePtr = GetDatastore();
- //if (datastorePtr==null)
- //{
- // return query;
- //}
- var tableInfoPtr = GetTableInfo();
- //if (tableInfoPtr==null)
- //{
- // return query;
- //}
- string sFieldIdColumnName = tableInfoPtr.GetColumnName(Convert.ToInt32(CPosXrayInfoTable.ColumnID.N_FIELD_ID) - Convert.ToInt32(CPosXrayInfoTable.ColumnID.MIN));
- //string sSQLCommand;
- //sSQLCommand = "SELECT * FROM \'{0}\' WHERE {1} ={2};" + Convert.ToString(tableInfoPtr.GetTableName()) +
- // Convert.ToString(sFieldIdColumnName) + a_nFieldId;
- //CSQLiteQuery cSQLiteQuery = new CSQLiteQuery();
- //query = datastorePtr.QueryByCommand(sSQLCommand);
- string sSQLCommand = string.Format("SELECT * FROM \'{0}\' WHERE {1} ={2};",tableInfoPtr.GetTableName(),sFieldIdColumnName, a_nFieldId);
- DataTable t1 = datastorePtr.QueryByCmdForDataTable(sSQLCommand);
- //ASSERT(query);
- //if (query==null || !query.IsValid())
- //{
- // logger.Info("Invalid quary command (%s)."+Convert.ToString(sSQLCommand));
- // //ASSERT(FALSE);
- // CDBQueryBase cDBQueryBase = new CDBQueryBase();
- // return (cDBQueryBase);
- //}
- //// do the table related valid checking
- //if (query.GetColCount() != GetTableInfo().GetColumnCount())
- //{
- // logger.Info("query col num value is %d, but not %d"+ cSQLiteQuery.GetColCount()+ GetTableInfo().GetColumnCount());
- // CDBQueryBase cDBQueryBase = new CDBQueryBase();
- // return (cDBQueryBase);
- //}
- return t1;
- }
- }
- }
|