123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- using OTSCLRINTERFACE;
- using OTSDataType;
- using OTSModelSharp.DTLBase;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SQLite;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace OTSModelSharp.DTLBase
- {
- public class CElementChemistryDB : CSQLiteDB
- {
- List<CPosXrayClr> m_listPosXrayInfo = new List<CPosXrayClr>();
- public CElementChemistryDB(IDBStoreBase _conStr, IDBTableBase _table):base(_conStr,_table)
- {
-
- }
-
- public System.Data.DataTable GetQueryById( long a_nXrayId, long a_nFieldId, long a_nElementId, long a_nElementSize)
- {
-
- var datastorePtr = GetDatastore();
-
- var tableInfoPtr = GetTableInfo();
-
- var sXrayIdColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_XRAY_INDEX - (int)CElementChemistryTable.ColumnID.MIN);
- var sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_FIELD_ID - (int)CElementChemistryTable.ColumnID.MIN);
- var sElementIdColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_ELEMENT_ID - (int)CElementChemistryTable.ColumnID.MIN);
- var sElementNumColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_ELEMENT_TOTAL - (int)CElementChemistryTable.ColumnID.MIN);
- String sSQLCommand= String.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};", (String)tableInfoPtr.GetTableName(), sFieldIdColumnName,
- a_nFieldId, sXrayIdColumnName, a_nXrayId,sElementIdColumnName, a_nElementId,sElementNumColumnName, a_nElementSize);
-
- var q=datastorePtr.QueryByCmdForDataTable(sSQLCommand);
-
- return q;
- }
-
- public List< CPosXrayClr> GetXrayInfoList( bool a_bForce/* = FALSE*/)
- {
- if (a_bForce)
- {
- m_listPosXrayInfo.Clear();
- }
- if (m_listPosXrayInfo.Count == 0)
- {
- ReadXrayPointInfoList();
- }
- return m_listPosXrayInfo;
- }
- public bool ReadXrayPointInfoList()
- {
- var tableInfoPtr = GetTableInfo();
-
- var query = GetTableQueryForDataTable("");
-
- m_listPosXrayInfo = ReadXrayPointInfoList(query);
- return true;
- }
-
- public bool SaveElementChemistriesList(List<CPosXrayClr> a_xrayPointList)
- {
-
- var tableInfoPtr = GetTableInfo();
-
- var datastorePtr = GetDatastore();
- String sInsertFormat = tableInfoPtr.GetInsertCommandFormatString();
- String sSQLCommand = "";
- foreach (var xrayPointInfo in a_xrayPointList)
- {
- List<CElementChemistryClr> listElemnentChemistries = xrayPointInfo.GetElementQuantifyData();
- int nSize = (int)listElemnentChemistries.Count;
- int nElementIndex = 0;
- foreach (var pElementChemistry in listElemnentChemistries)
- {
- sSQLCommand= String.Format(sInsertFormat,
- xrayPointInfo.GetIndex(),
- xrayPointInfo.GetScanFieldId(),
- nElementIndex,
- nSize,
- pElementChemistry.GetName(),
- pElementChemistry.GetPercentage());
- //var helper = new SQLiteHelper(datastorePtr);
- if (datastorePtr.RunCommand(sSQLCommand) != true)
- {
- return false;
- }
- nElementIndex++;
- }
- }
- return true;
- }
- public bool SaveElementChemistriesList( CPosXrayClr a_pxrayPoint)
- {
-
- var tableInfoPtr = GetTableInfo();
-
- var datastorePtr = GetDatastore();
- String sInsertFormat = tableInfoPtr.GetInsertCommandFormatString();
- String sSQLCommand = "";
- List<CElementChemistryClr >listElemnentChemistries = a_pxrayPoint.GetElementQuantifyData();
- int nSize = (int)listElemnentChemistries.Count;
- int nElementIndex = 0;
- foreach (var pElementChemistry in listElemnentChemistries)
- {
- sSQLCommand=String.Format(sInsertFormat,
- a_pxrayPoint.GetIndex(),
- a_pxrayPoint.GetScanFieldId(),
- nElementIndex,
- nSize,
- pElementChemistry.GetName(),
- pElementChemistry.GetPercentage(),
- pElementChemistry.GetMolarPercentage());
-
- if (datastorePtr.RunCommand(sSQLCommand) != true)
- {
- return false;
- }
- nElementIndex++;
- }
- return true;
- }
- public List<KeyValuePair<string,SQLiteParameter[]>> GetSavingElementChemistriesCmds(CPosXrayClr a_pxrayPoint)
- {
- List<KeyValuePair<string, SQLiteParameter[]>> cmds = new List<KeyValuePair<string, SQLiteParameter[]>>();
- var tableInfoPtr = GetTableInfo();
-
- var sInsertFormat = tableInfoPtr.GetInsertCommand();
- var parasTem = sInsertFormat.Value;
- List<CElementChemistryClr> listElemnentChemistries = a_pxrayPoint.GetElementQuantifyData();
- int nSize = (int)listElemnentChemistries.Count;
- int nElementIndex = 0;
- foreach (var pElementChemistry in listElemnentChemistries)
- {
- var paras = new SQLiteParameter[6];
- for (int j = 0; j < 6; j++)
- {
- paras[j] = new SQLiteParameter(parasTem[j].ParameterName);
- }
- paras[0].Value = a_pxrayPoint.GetIndex();
- paras[1].Value = a_pxrayPoint.GetScanFieldId();
- paras[2].Value = nElementIndex;
- paras[3].Value = nSize;
- paras[4].Value = pElementChemistry.GetName();
- paras[5].Value = pElementChemistry.GetPercentage();
-
-
- nElementIndex++;
- cmds.Add(new KeyValuePair<string, SQLiteParameter[]>(sInsertFormat.Key, paras));
- }
- return cmds;
- }
- public bool DeleteElementChemistryById(long a_nFieldId, long a_nXrayId)
- {
- if (m_listPosXrayInfo.Count != 0)
- {
- for (int itr = 0; itr < m_listPosXrayInfo.Count; itr++)
- {
- if (m_listPosXrayInfo[itr].ToString() == a_nFieldId.ToString())
- {
- CPosXrayClr posXrayInfo = new CPosXrayClr();
- posXrayInfo = m_listPosXrayInfo[itr];
- break;
- }
- }
- }
- DataTable query;
- var tableInfoPtr = GetTableInfo();
- var datastorePtr = GetDatastore();
- String sTableName = tableInfoPtr.GetTableName();
- if (IsTableExists(sTableName))
- {
-
-
- var sXrayIdColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_XRAY_INDEX - (int)CElementChemistryTable.ColumnID.MIN);
- var sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CElementChemistryTable.ColumnID.N_FIELD_ID - (int)CElementChemistryTable.ColumnID.MIN);
- String sSQLCommand =
- String.Format("DELETE FROM \'{0}\' WHERE {1} = {2} AND {3} ={4};",
- sTableName,
- sXrayIdColumnName,
- a_nXrayId,
- sFieldIdColumnName,
- a_nFieldId);
- //var helper = new SQLiteHelper(datastorePtr);
- datastorePtr.RunCommand(sSQLCommand);
- }
- return true;
- }
- public bool IsTableExists(String a_sTableName)
- {
- return IsDBExist();
- }
- public List<CPosXrayClr> ReadXrayPointInfoList(DataTable a_query)
- {
- List<CPosXrayClr> xrayList = new List<CPosXrayClr>();
- Dictionary<string, CPosXrayClr> mapXrayInfo = new Dictionary<string, CPosXrayClr>();
- foreach (DataRow row in a_query.Rows)
- {
- int nCol = (int)CElementChemistryTable.ColumnID.N_FIELD_ID- (int)CElementChemistryTable.ColumnID.MIN;
- int curFldId = Convert.ToInt32(row[nCol]);
- nCol = (int)CElementChemistryTable.ColumnID.N_XRAY_INDEX - (int)CElementChemistryTable.ColumnID.MIN;
- int xrayId = Convert.ToInt32(row[nCol]);
- string fldvec = "";
- fldvec+=curFldId.ToString();
- fldvec += "_";
- fldvec += xrayId.ToString();
-
- nCol = (int)CElementChemistryTable.ColumnID.S_NAME - (int)CElementChemistryTable.ColumnID.MIN;
- string cheName = Convert.ToString(row[nCol]);
- nCol = (int)CElementChemistryTable.ColumnID.F_PERCENTAGE - (int)CElementChemistryTable.ColumnID.MIN;
- double percentage = Convert.ToDouble(row[nCol]);
- CElementChemistryClr che = new CElementChemistryClr(cheName,percentage);
- if (!mapXrayInfo.ContainsKey(fldvec))
- {
- CPosXrayClr xray = new CPosXrayClr();
- xray.AddQuantifyElement(che);
- mapXrayInfo.Add(fldvec, xray);
- }
- else
- {
- CPosXrayClr xray = mapXrayInfo[fldvec];
- xray.AddQuantifyElement(che);
- }
- }
- foreach (var keyvalue in mapXrayInfo)
- {
- xrayList.Add(keyvalue.Value);
- }
- return xrayList;
-
- }
- public bool GetAllMapedXrayInfo(ref Dictionary<string, CPosXrayClr> mapXrayInfo)
- {
- DataTable a_query = GetTableQueryForDataTable();
- //Dictionary<string, CPosXrayClr> mapXrayInfo = new Dictionary<string, CPosXrayClr>();
- foreach (DataRow row in a_query.Rows)
- {
- int nCol = (int)CElementChemistryTable.ColumnID.N_FIELD_ID - (int)CElementChemistryTable.ColumnID.MIN;
- int curFldId = Convert.ToInt32(row[nCol]);
- nCol = (int)CElementChemistryTable.ColumnID.N_XRAY_INDEX - (int)CElementChemistryTable.ColumnID.MIN;
- int xrayId = Convert.ToInt32(row[nCol]);
- string fldvec = "";
- fldvec += curFldId.ToString();
- fldvec += "_";
- fldvec += xrayId.ToString();
- nCol = (int)CElementChemistryTable.ColumnID.S_NAME - (int)CElementChemistryTable.ColumnID.MIN;
- string cheName = Convert.ToString(row[nCol]);
- nCol = (int)CElementChemistryTable.ColumnID.F_PERCENTAGE - (int)CElementChemistryTable.ColumnID.MIN;
- double percentage = Convert.ToDouble(row[nCol]);
- CElementChemistryClr che = new CElementChemistryClr(cheName, percentage);
- if (!mapXrayInfo.ContainsKey(fldvec))
- {
- CPosXrayClr xray = new CPosXrayClr();
- xray.AddQuantifyElement(che);
- mapXrayInfo.Add(fldvec, xray);
- }
- else
- {
- CPosXrayClr xray = mapXrayInfo[fldvec];
- xray.AddQuantifyElement(che);
- }
- }
- return true;
- }
- }
- }
|