| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | using OTSCOMMONCLR;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.GetXRayPos();            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;	}        }}
 |