IBE.SQL.EliteDBIO.sendProgressEvent C# (CSharp) Method

sendProgressEvent() private method

fires the progress event if necessary
private sendProgressEvent ( ProgressEventArgs pEArgs ) : System.Boolean
pEArgs ProgressEventArgs
return System.Boolean
        private Boolean sendProgressEvent(ProgressEventArgs pEArgs)
        {
            long   ProgressSendLevel;
            Boolean retValue            = false;

            try 
	        {	        
               
		        if((m_EventTimer.currentMeasuring() > m_TimeSlice_ms) || pEArgs.ForceRefresh || pEArgs.NewLine || pEArgs.AddSeparator)
                {
                    // time is reason
                    Progress.Raise(this, pEArgs);

                    if(pEArgs.TotalValue > 0)
                        ProgressSendLevel =  ((100 * pEArgs.CurrentValue/pEArgs.TotalValue) / 10) * 10;
                    else
                        ProgressSendLevel =  -1;

                    m_EventTimer.startMeasuring();
                    m_lastProgress = ProgressSendLevel;

                    Debug.Print("Progress (t):" + ProgressSendLevel.ToString());
                }
                else
                { 
                    // progress is reason
                    if(pEArgs.TotalValue > 0)
                        ProgressSendLevel =  ((100 * pEArgs.CurrentValue/pEArgs.TotalValue) / 10) * 10;
                    else
                        ProgressSendLevel =  -1;
                    
                    if(((pEArgs.TotalValue != 0) && (((100 * pEArgs.CurrentValue/pEArgs.TotalValue) % m_PercentSlice) == 0) && (ProgressSendLevel != m_lastProgress)) || 
                       (ProgressSendLevel != m_lastProgress))
                    { 
                        // time is reason
                        Progress.Raise(this, pEArgs);

                        m_EventTimer.startMeasuring();
                        m_lastProgress = ProgressSendLevel;
                        Debug.Print("Progress (l):" + ProgressSendLevel.ToString());
                    }
                }

                retValue = pEArgs.Cancelled ;

                return retValue;
	        }
	        catch (Exception ex)
	        {
		        throw new Exception("Error while checking for progress event needed", ex);
	        }
        }