123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- using OTSCLRINTERFACE;
- using OTSDataType;
- using OTSModelSharp.DTLBase;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- namespace OTSModelSharp
- {
- public class CMergeParticleDB : CSQLiteDB
- {
- public CMergeParticleDB(IDBStoreBase _conStr, IDBTableBase _table) : base(_conStr, _table)
- {
-
- }
- public bool SaveAParticle( COTSParticleClr a_pParticle, CPosXrayClr a_pXray, System.Drawing.Point fldPos)
- {
- var tableInfoPtr = GetTableInfo();
- var datastorePtr = GetDatastore();
- Rectangle prec = (Rectangle)a_pParticle.GetParticleRect();
- System.Drawing.Point pos = (System.Drawing.Point)a_pParticle.GetAbsolutPos();
- String sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
- String sSQLCommand = String.Format(sInsertFormat,
- a_pParticle.GetFieldId(),
- a_pParticle.GetAnalysisId(),
- a_pParticle.GetAveGray(),
- prec.Left,
- prec.Top,
- prec.Width,
- prec.Height,
- a_pParticle.GetArea(),
- pos.X,
- pos.Y,
- a_pParticle.GetType(),
- (int) a_pXray.GetElementQuantifyData().Count,
- (int) (a_pParticle.GetFeature().GetSegmentsList().Count),
- fldPos.X,
- fldPos.Y,
- a_pParticle.GetTagId(),
- a_pParticle.GetDMAX(),
- a_pParticle.GetDMIN(),
- a_pParticle.GetDMPERP(),
- a_pParticle.GetDPRIMETER(),
- a_pParticle.GetORIENTATION(),
- a_pParticle.GetDINSCR(),
- a_pParticle.GetDMEAN(),
- a_pParticle.GetDELONG(),
- a_pParticle.GetFeretDiameter(),
- a_pParticle.GetTypeName(),
- a_pParticle.GetTypeColor(),
- a_pParticle.GetSubParticles()
- );
- //var helper = new SQLiteHelper(datastorePtr);
-
- if (datastorePtr.RunCommand(sSQLCommand)!=true)
- {
- return false;
- }
- return true;
- }
- public bool UpdataAParticle( COTSParticleClr a_pParticle)
- {
- var tableInfoPtr = GetTableInfo();
- var datastorePtr = GetDatastore();
- String sSQLCommand = "Update IncAData \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};";
- sSQLCommand= String.Format(sSQLCommand,
- a_pParticle.GetAveGray(),
- a_pParticle.GetArea(),
- a_pParticle.GetType(),
- a_pParticle.GetFieldId(),
- a_pParticle.GetTagId());
- //var helper = new SQLiteHelper(datastorePtr);
- if (datastorePtr.RunCommand(sSQLCommand) != true)
- {
- return false;
- }
- return true;
- }
- public bool GetAllFieldsRecord(ref List<COTSFieldData> allFlds)
- {
- var allRecords = this.GetQueryOfAllRecord();
- Dictionary<int,COTSFieldData> mapFld = new Dictionary<int,COTSFieldData>();
- for (int i = 0; i < allRecords.Rows.Count; i++)
- {
- int curFldId = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_FIELD_ID][0];
-
- if (!mapFld.Keys.Contains(curFldId))
- {
- COTSFieldData fld = new COTSFieldData();
-
- fld.SetId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_FIELD_ID][0]);
- System.Drawing.Point fldPos = new System.Drawing.Point();
-
- fldPos.X = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_FldPosX][0];
- fldPos.Y = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_FldPosY][0];
- fld.SetPosition(fldPos);
- List< COTSParticleClr> ps = fld.ListAnalysisParticles;
- COTSParticleClr p = new COTSParticleClr();
-
- p.SetTagId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_PARTICLE_ID][0]);
- p.SetClassifyId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_INCA_ID][0]);
- int top = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_TOP][0];
- int left = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_LEFT][0];
- int width = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_WIDTH][0];
- int height = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_HEIGHT][0];
- Rectangle r = new Rectangle(left, top, width, height);
- p.SetParticleRect(r);
-
- p.SetAveGray(Convert.ToByte(allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_AVE_GRAY][0]));
- p.SetArea((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_AREA][0]);
- p.SetAnalysisId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_XRAY_ID][0]);
- //p.SetDMax((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMAX][0]);
- //p.SetDMin((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMIN][0]);
- //p.SetDPerp((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DPERP][0]);
- //p.SetDInscr((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DINSCR][0]);
- //p.SetDMean((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMEAN][0]);
- //p.SetDElong((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DELONG][0]);
- //p.SetPerimeter((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_PERIMETER][0]);
- //p.SetOrientation((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_ORIENTATION][0]);
- //p.TypeName(allRecords.Rows[(int)CMergeParticleTable.ColumnID.S_NAME][0].ToString());
- //p.TypeColor(allRecords.Rows[(int)CMergeParticleTable.ColumnID.S_COLOR][0].ToString());
- ps.Add(p);
- allFlds.Add(fld);
- mapFld[curFldId] = fld;
- }
- else
- {
- COTSFieldData fld = mapFld[curFldId];
- List< COTSParticleClr> ps = fld.ListAnalysisParticles;
- COTSParticleClr p = new COTSParticleClr();
- p.SetFieldId(fld.GetId());
- p.SetTagId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_PARTICLE_ID][0]);
- p.SetClassifyId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_INCA_ID][0]);
- int top = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_TOP][0];
- int left = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_LEFT][0];
- int width = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_WIDTH][0];
- int height = (int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_RECT_HEIGHT][0];
- Rectangle r = new Rectangle(left, top, width, height);
- p.SetParticleRect(r);
-
- p.SetAveGray(Convert.ToByte(allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_AVE_GRAY][0]));
- p.SetArea((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_AREA][0]);
- p.SetAnalysisId((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.N_XRAY_ID][0]);
- //p.SetDMax((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMAX][0]);
- //p.SetDMin((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMIN][0]);
- //p.SetDPerp((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DPERP][0]);
- //p.SetDInscr((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DINSCR][0]);
- //p.SetDMean((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DMEAN][0]);
- //p.SetDElong((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_DELONG][0]);
- //p.SetPerimeter((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_PERIMETER][0]);
- //p.SetOrientation((int)allRecords.Rows[(int)CMergeParticleTable.ColumnID.F_ORIENTATION][0]);
- //p.TypeName(allRecords.Rows[(int)CMergeParticleTable.ColumnID.S_NAME][0].ToString());
- //p.TypeColor(allRecords.Rows[(int)CMergeParticleTable.ColumnID.S_COLOR][0].ToString());
- ps.Add(p);
- }
- allRecords.NewRow();
- };
- allRecords.Clear();
- return true;
- }
- public DataTable GetQueryOfAllRecord()
- {
- DataTable query;
- var datastorePtr = GetDatastore();
-
- var tableInfoPtr = GetTableInfo();
- String sSQLCommand = "";
- String.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND {3} ={4} AND {5} ={6} AND {7} = {8};",
- (String)tableInfoPtr.GetTableName());
- //var helper = datastorePtr;
-
- query = datastorePtr.QueryByCmdForDataTable(sSQLCommand); ;
-
- return query;
- }
- public DataTable GetQueryById( long a_nXrayId, long a_nFieldId)
- {
- DataTable query;
- var datastorePtr = GetDatastore();
- var tableInfoPtr = GetTableInfo();
-
- var sXrayIdColumnName = tableInfoPtr.GetColumnName((int)CMergeParticleTable.ColumnID.N_XRAY_ID - (int)CMergeParticleTable.ColumnID.MIN);
- var sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CMergeParticleTable.ColumnID.N_FIELD_ID - (int)CMergeParticleTable.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);
- //var helper = new SQLiteHelper(datastorePtr);
- query = datastorePtr.QueryByCmdForDataTable(sSQLCommand);
- return query;
- }
-
- }
- }
|