Пример #1
0
 /// <summary>
 /// Use the SEARCH_STATUS class to pass in status Data. If totalCount is zero, then progress will be indicated
 /// by currentTime as referenced to startTime/endTime. If totalCount is non-zero, then progress will be indicated
 /// by currentCount as a percentage of totalCount.
 /// In either case, currentTime will be indicated to the user as the current search point.
 /// </summary>
 /// <param name="status"></param>
 public void SetStatus(SearchLib.SEARCH_STATUS status)
 {
     if (status.totalCount == 0)
     {
         this.BeginInvoke((MethodInvoker) delegate { _SetStatus(status, status.currentTime, 0, 0, status.startTime, status.endTime, status.errorString); });
     }
     else
     {
         this.BeginInvoke((MethodInvoker) delegate { _SetStatus(status, status.currentTime, status.currentCount, status.totalCount, default(DateTime), default(DateTime), status.errorString); });
     }
 }
Пример #2
0
        /// <summary>
        /// Set Current Status
        /// </summary>
        ///
        void _SetStatus(SearchLib.SEARCH_STATUS status, DateTime currentSearchTime, int count, int totalCount, DateTime startTime, DateTime endTime, string errors)
        {
            switch (status.phase)
            {
            case SearchLib.SEARCH_PHASE.COMPARING_STRINGS:
                labelSearchPhase.Text = "Searching Plate Strings";
                labelCurrentlyAt.Text = currentSearchTime.ToString(m_AppData.TimeFormatStringForDisplay);
                textBoxErrorText.Text = (errors == null) ? m_lastError : errors;
                SetProgressIndicator(count, totalCount);
                break;


            case SearchLib.SEARCH_PHASE.FINDING_ITEMS_IN_TIME_RANGE:
                labelSearchPhase.Text = "Finding Items In Time Range";
                labelCurrentlyAt.Text = currentSearchTime.ToString(m_AppData.TimeFormatStringForDisplay);
                textBoxErrorText.Text = (errors == null) ? m_lastError : errors;

                SetProgressIndicator(currentSearchTime, startTime, endTime);

                break;

            case SearchLib.SEARCH_PHASE.COMPLETE:
                labelSearchPhase.Text = "Search Complete";
                labelCurrentlyAt.Text = currentSearchTime.ToString(m_AppData.TimeFormatStringForDisplay);
                textBoxErrorText.Text = (errors == null) ? m_lastError : errors;

                if (totalCount == 0)
                {
                    SetProgressIndicator(currentSearchTime, startTime, endTime);
                }
                else
                {
                    SetProgressIndicator(count, totalCount);
                }

                ShowSearchCompleteIndicator();
                break;

            case SearchLib.SEARCH_PHASE.LOADING_RESULTS:
                labelSearchPhase.Text = "Loading Results";
                labelCurrentlyAt.Text = currentSearchTime.ToString(m_AppData.TimeFormatStringForDisplay);
                textBoxErrorText.Text = (errors == null) ? m_lastError : errors;
                SetProgressIndicator(count, totalCount);
                break;
            }
            if (errors != null)
            {
                m_lastError = errors;
            }
        }
Пример #3
0
        void SearchProgressCB(SearchLib.SEARCH_STATUS status)
        {
            try
            {
                // just send this to the display
                m_SearchStatusDisplay.SetStatus(status);

                switch (status.errorCode)
                {
                case SearchLib.SEARCH_ERROR_CODES.TOO_MANY_ENTRIES:
                    m_SearchTool.StopSearch();

                    break;
                }
            }
            catch (Exception ex)
            {
                m_Log.Trace(ex, ErrorLog.LOG_TYPE.INFORMATIONAL);
            }
        }
Пример #4
0
        void _SearchCompleteCB(List <SearchLib.SEARCH_RESULT> results)
        {
            SearchLib.SEARCH_STATUS status = new SearchLib.SEARCH_STATUS();
            status.phase        = SearchLib.SEARCH_PHASE.LOADING_RESULTS;
            status.totalCount   = (results == null) ? 0 : results.Count;
            status.currentCount = 0;

            m_SearchStatusDisplay.SetStatus(status);

            if (results == null)
            {
                // there was an error or no data found
                status.phase        = SearchLib.SEARCH_PHASE.COMPLETE;
                status.totalCount   = 0;
                status.currentCount = 0;
                m_SearchStatusDisplay.SetStatus(status);

                m_SearchInProgress = false;
                return;
            }

            // do work here

            m_LastSearchResults = results;

            numItemsFoundLabel.Text = results.Count.ToString();

            int loopCount = 0;

            m_AddingRowsToDataGrid = true;

            foreach (SearchLib.SEARCH_RESULT r in results)
            {
                loopCount++;

                Bitmap flag        = m_NullImage;
                string GPSLocation = r.plateData.GPSLatitude + "," + r.plateData.GPSLongitude;

                string gpsTest = GPSLocation.ToLower();

                if (gpsTest.Contains("no position"))
                {
                    flag = m_LittleRedFlag;
                }
                else
                {
                    flag = m_LittleGreenFlag;
                }

                dataGridView1.Rows.Add(r.percentMatch, r.matchedString, r.plateData.timeStamp, r.plateData.PSSName,
                                       r.plateData.sourceChannelName, r.plateData.jpegRelativeFilePath, flag, GPSLocation);

                Application.DoEvents();// process windows thread messages in this very long loop

                if (loopCount % 100 == 0)
                {
                    status.currentCount = loopCount;
                    status.currentTime  = r.plateData.timeStamp;
                    m_SearchStatusDisplay.SetStatus(status);
                }
            }

            if (m_SearchByNumber)
            {
                dataGridView1.Sort(dataGridView1.Columns["SearchMatchLikelyhood"], ListSortDirection.Descending);
            }
            else
            {
                dataGridView1.Sort(new RowComparer(SortOrder.Ascending));
            }


            status.phase = SearchLib.SEARCH_PHASE.COMPLETE;

            status.totalCount   = results.Count;
            status.currentCount = results.Count;
            m_SearchStatusDisplay.SetStatus(status);

            m_SearchInProgress = false;

            m_AddingRowsToDataGrid = false;
        }
Пример #5
0
        void _SearchCompleteCB(List<SearchLib.SEARCH_RESULT> results)
        {
            SearchLib.SEARCH_STATUS status = new SearchLib.SEARCH_STATUS();
            status.phase = SearchLib.SEARCH_PHASE.LOADING_RESULTS;
            status.totalCount = (results == null  ) ? 0 : results.Count;
            status.currentCount = 0;

            m_SearchStatusDisplay.SetStatus(status);

            if (results == null)
            {
                // there was an error or no data found
                status.phase = SearchLib.SEARCH_PHASE.COMPLETE;
                status.totalCount = 0;
                status.currentCount = 0;
                m_SearchStatusDisplay.SetStatus(status);

                m_SearchInProgress = false;
                return;
            }

            // do work here

            m_LastSearchResults = results;

            numItemsFoundLabel.Text = results.Count.ToString();

            int loopCount = 0;

            m_AddingRowsToDataGrid = true;

            foreach (SearchLib.SEARCH_RESULT r in results)
            {
                loopCount++;

                Bitmap flag = m_NullImage;
                string GPSLocation = r.plateData.GPSLatitude + "," + r.plateData.GPSLongitude;

                string gpsTest = GPSLocation.ToLower();

                if (gpsTest.Contains("no position"))
                {
                    flag = m_LittleRedFlag;
                }
                else
                {
                    flag = m_LittleGreenFlag;
                }

                dataGridView1.Rows.Add(r.percentMatch, r.matchedString, r.plateData.timeStamp, r.plateData.PSSName,
                                r.plateData.sourceChannelName, r.plateData.jpegRelativeFilePath, flag, GPSLocation);

                Application.DoEvents();// process windows thread messages in this very long loop

                if (loopCount % 100 == 0)
                {

                    status.currentCount = loopCount;
                    status.currentTime = r.plateData.timeStamp;
                    m_SearchStatusDisplay.SetStatus(status);
                }
            }

            if (m_SearchByNumber)
                dataGridView1.Sort(dataGridView1.Columns["SearchMatchLikelyhood"], ListSortDirection.Descending);
            else
                dataGridView1.Sort(new RowComparer(SortOrder.Ascending));

            status.phase = SearchLib.SEARCH_PHASE.COMPLETE;

            status.totalCount = results.Count;
            status.currentCount = results.Count;
            m_SearchStatusDisplay.SetStatus(status);

            m_SearchInProgress = false;

            m_AddingRowsToDataGrid = false;
        }