private void Initialize() { int iPipeId = 0; foreach (CPipeModel pipeModel in IApp.theApp.DataModel.PipeModels) { iPipeId++; if (pipeModel.PipeWorkingRanges == null) continue; // Insert to Idictionary if (!m_listProgress2DateTimeMapper.ContainsKey(iPipeId)) { m_listProgress2DateTimeMapper[iPipeId] = new CRemoveUnusedDateTimerMapper(pipeModel.PipeWorkingRanges); } } }
public IProgress2DateTimeMapper GetMapper(int iIndex) { if (m_listProgress2DateTimeMapper.ContainsKey(iIndex)) { return m_listProgress2DateTimeMapper[iIndex]; } IHistoryDataQuery dataQuery = IApp.theApp.HistoryTimeDataQuery; if (dataQuery != null && dataQuery.IsConnected) { try { // Query the time DateTime beginingTime = DateTime.Now; DateTime endTime = DateTime.Now; if (iIndex == 0) // View all pipes { CPipeWorkingRanges workingRanges = new CPipeWorkingRanges(); int pipeModelCount = IApp.theApp.DataModel.PipeModels.Count; for (int i = pipeModelCount; i > 0; --i) { if (dataQuery.IsPipeStarted(i)) { beginingTime = dataQuery.GetPipeStartTime(i, true); endTime = dataQuery.GetPipeEndTime(i, true); for (int j = 1; j < i; ++j) { if (m_listProgress2DateTimeMapper.ContainsKey(j)) { CRemoveUnusedDateTimerMapper mapper = m_listProgress2DateTimeMapper[j] as CRemoveUnusedDateTimerMapper; if (mapper != null) { workingRanges.AddRange(mapper.WorkingRanges); continue; } } // Get the start and end time CPipeWorkingTimeRange workingRange = new CPipeWorkingTimeRange(dataQuery.GetPipeStartTime(j, true), dataQuery.GetPipeEndTime(j, true)); workingRanges.Add(workingRange); } // Add a working time range for this pipe workingRanges.Add(new CPipeWorkingTimeRange(beginingTime, endTime)); // Construct a CRemoveUnusedDateTimerMapper for iIndex = 0 (the view all pipes option) CRemoveUnusedDateTimerMapper removeUnusedDateTimerMapper = new CRemoveUnusedDateTimerMapper(workingRanges); m_listProgress2DateTimeMapper[iIndex] = removeUnusedDateTimerMapper; return removeUnusedDateTimerMapper; } } } else { //// View specific pipe and Get all count //trackRange[1] = (int)dataQuery.GetPipeRecordCount(iSelectedIndex); // iSelectedIndex should start from 1 // Get the beginning time beginingTime = dataQuery.GetPipeStartTime(iIndex, true); // Get the end time endTime = dataQuery.GetPipeEndTime(iIndex, true); } // Construct the mapper CNormalProgress2DateTimeMapper normalProgress2DateTimeMapper = new CNormalProgress2DateTimeMapper(beginingTime, endTime); m_listProgress2DateTimeMapper[iIndex] = normalProgress2DateTimeMapper; return normalProgress2DateTimeMapper; } catch (Exception ex) { string errMsg = ex.Message + "\n" + ex.StackTrace; vtk.vtkOutputWindow.GetInstance().DisplayErrorText(errMsg); } } return null; }