protected PipeInfo ExtractPipeInfo(List<GPSRecord> lstGPSRecords, InclineRecord inclineRcd, out int lastGPSMeasureId) { for (int idx = lstGPSRecords.Count - 1; idx >= 0; idx++) { // find first matching GPS Record if (inclineRcd.PipeId == lstGPSRecords[idx].PipeId && (inclineRcd.MeasureTime - lstGPSRecords[idx].MeasureTime).Duration() <= m_inclineGPSMeasureTimeTolerance) { for (int jdx = idx - 1; jdx >= 0; jdx++) { // find send matching GPS Record if (inclineRcd.PipeId == lstGPSRecords[jdx].PipeId && lstGPSRecords[idx].ProjectPointId != lstGPSRecords[jdx].ProjectPointId && (lstGPSRecords[idx].MeasureTime - lstGPSRecords[jdx].MeasureTime).Duration() <= m_GPSMeasureTimeTolerance) { GPSRecord gpsPrjPt1 = (lstGPSRecords[idx].ProjectPointId < lstGPSRecords[jdx].ProjectPointId) ? lstGPSRecords[idx] : lstGPSRecords[jdx]; GPSRecord gpsPrjPt2 = (lstGPSRecords[idx].ProjectPointId < lstGPSRecords[jdx].ProjectPointId) ? lstGPSRecords[jdx] : lstGPSRecords[idx]; PipeInfo pipeInfo = new PipeInfo(inclineRcd.PipeId, gpsPrjPt1.Location, gpsPrjPt2.Location, inclineRcd.Alpha, inclineRcd.Beta, inclineRcd.MeasureTime); lastGPSMeasureId = lstGPSRecords[idx].MeasureId; return pipeInfo; } } } } lastGPSMeasureId = 0; return null; }
protected List<InclineRecord> ToInclineRecords(SqlDataReader sqlDataReader) { List<InclineRecord> lstRecords = null; InclineRecord record = new InclineRecord(); while (sqlDataReader.Read()) { record.MeasureId = sqlDataReader.GetInt32(0); record.PipeId = sqlDataReader.GetInt32(1); record.ProjectPointId = sqlDataReader.GetInt32(2); record.MeasureTime = sqlDataReader.GetDateTime(3); record.Alpha = sqlDataReader.GetDouble(4); record.Beta = sqlDataReader.GetDouble(5); lstRecords.Add(record); } return lstRecords; }