示例#1
0
 private void ProbingErrorsInView()
 {
     CollectUnexpandedTransfers();
     if (unexpandedTransferOutControls.Count != 0)
     {
         TraceRecordCellControl traceRecordCellControl = null;
         foreach (TraceRecordCellControl unexpandedTransferOutControl in unexpandedTransferOutControls)
         {
             if (unexpandedTransferOutControl.ExpandingState == ExpandingState.Collapsed)
             {
                 TraceRecordSetSeverityLevel severityLevel = TraceRecordSetSeverityLevel.Normal;
                 TraceRecord firstErrorTrace = null;
                 ActivityAnalyzerHelper.DetectErrorOrWarningOnActivity(base.CurrentDataSource.Activities[unexpandedTransferOutControl.CurrentTraceRecordItem.CurrentTraceRecord.RelatedActivityID], base.CurrentDataSource.Activities, null, null, true, true, ref severityLevel, ref firstErrorTrace, ActivityAnalyzerHelper.INIT_ACTIVITY_TREE_DEPTH2);
                 if (severityLevel != 0)
                 {
                     unexpandedTransferOutControl.CurrentTraceRecordItem.SeverityLevel = severityLevel;
                     if (traceRecordCellControl == null)
                     {
                         traceRecordCellControl = unexpandedTransferOutControl;
                         base.Container.ScrollControlIntoView(traceRecordCellControl, isCenter: true);
                     }
                 }
             }
         }
     }
 }
 internal static void DetectErrorOrWarningOnActivity(Activity activity, Dictionary <string, Activity> allActivities, List <TraceRecord> traces, ExecutionInfo execution, bool isChild, bool isDetectSeverityLevel, ref TraceRecordSetSeverityLevel severityLevel, ref TraceRecord firstErrorTrace, int depth)
 {
     if (activity != null && depth < MAX_ACTIVITY_TREE_DEPTH)
     {
         traces = ((traces == null) ? InternalLoadTraceRecordWarpper(activity, execution, containsActivityBoundary: true) : traces);
         foreach (TraceRecord trace in traces)
         {
             if (execution == null || execution.ExecutionID == trace.Execution.ExecutionID)
             {
                 if (trace.Level == TraceEventType.Critical || trace.Level == TraceEventType.Error)
                 {
                     if (firstErrorTrace == null)
                     {
                         firstErrorTrace = trace;
                     }
                     if (severityLevel < TraceRecordSetSeverityLevel.Error)
                     {
                         severityLevel = TraceRecordSetSeverityLevel.Error;
                     }
                     return;
                 }
                 if (trace.Level == TraceEventType.Warning)
                 {
                     if (firstErrorTrace == null)
                     {
                         firstErrorTrace = trace;
                     }
                     if (isDetectSeverityLevel)
                     {
                         break;
                     }
                     if (severityLevel < TraceRecordSetSeverityLevel.Warning)
                     {
                         severityLevel = TraceRecordSetSeverityLevel.Warning;
                     }
                 }
             }
         }
         if (isChild)
         {
             foreach (Activity childActivity in GetChildActivities(activity.Id, traces, allActivities, execution))
             {
                 DetectErrorOrWarningOnActivity(childActivity, allActivities, null, null, isChild, isDetectSeverityLevel, ref severityLevel, ref firstErrorTrace, depth + 1);
                 if (firstErrorTrace != null)
                 {
                     switch (isDetectSeverityLevel)
                     {
                     case false:
                         return;
                     }
                     if (severityLevel == TraceRecordSetSeverityLevel.Error)
                     {
                         break;
                     }
                 }
             }
         }
     }
 }