示例#1
0
        public static void calculateSmartTraceCallStatistics(AssessmentRun arAssessmentRunToAnalyze, UInt32 uKey,
                                                             TraceType tTraceType, ref int iSmartTraces,
                                                             ref int iNonDuplicated, ref int iIgnoreRoot)
        {
            if (arAssessmentRunToAnalyze == null)
                return;

            FindingNameFormat ffnFindingNameFormat = FindingNameFormat.FindingType;
            // using default value (we are not going to need this value here (since we are only calculating statistics))
            bool bChangeFindingData = false; // this is the value that prevents changes

            bool bDropDuplicateSmartTraces = false;
            bool bIgnoreRootCallInvocation = false;
            var ffsmSmartTraces = new AnalysisFilters.filter_FindSmartTrace_byID(uKey, tTraceType,
                                                                                 bDropDuplicateSmartTraces,
                                                                                 bIgnoreRootCallInvocation,
                                                                                 ffnFindingNameFormat,
                                                                                 bChangeFindingData);
            bDropDuplicateSmartTraces = true;
            var ffsmSmartTraces_NotDuplicated = new AnalysisFilters.filter_FindSmartTrace_byID(uKey, tTraceType,
                                                                                               bDropDuplicateSmartTraces,
                                                                                               bIgnoreRootCallInvocation,
                                                                                               ffnFindingNameFormat,
                                                                                               bChangeFindingData);
            bIgnoreRootCallInvocation = true;
            var ffsmSmartTraces_NotDuplicated_IgnoreRoot = new AnalysisFilters.filter_FindSmartTrace_byID(uKey,
                                                                                                          tTraceType,
                                                                                                          bDropDuplicateSmartTraces,
                                                                                                          bIgnoreRootCallInvocation,
                                                                                                          ffnFindingNameFormat,
                                                                                                          bChangeFindingData);


            // create lists to hold results
            var lfFindingsThatMatchCriteria_SmartTraces = new List<AssessmentAssessmentFileFinding>();
            var lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated = new List<AssessmentAssessmentFileFinding>();
            var lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated_IgnoreRoot =
                new List<AssessmentAssessmentFileFinding>();

            if (StringsAndLists.notNull(arAssessmentRunToAnalyze, typeof (AssessmentRun).Name) &&
                null != arAssessmentRunToAnalyze.Assessment.Assessment)
                foreach (Assessment aAssessment in arAssessmentRunToAnalyze.Assessment.Assessment)
                {
                    foreach (AssessmentAssessmentFile afAssessmentFile in aAssessment.AssessmentFile)
                        if (null != afAssessmentFile.Finding)
                            foreach (AssessmentAssessmentFileFinding fFinding in afAssessmentFile.Finding)
                                if (null != fFinding.Trace)
                                {
                                    applyFilter(ffsmSmartTraces, lfFindingsThatMatchCriteria_SmartTraces, fFinding,
                                                arAssessmentRunToAnalyze);
                                    applyFilter(ffsmSmartTraces_NotDuplicated,
                                                lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated, fFinding,
                                                arAssessmentRunToAnalyze);
                                    applyFilter(ffsmSmartTraces_NotDuplicated_IgnoreRoot,
                                                lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated_IgnoreRoot,
                                                fFinding, arAssessmentRunToAnalyze);
                                }
                }
            iSmartTraces = lfFindingsThatMatchCriteria_SmartTraces.Count;
            iNonDuplicated = lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated.Count;
            iIgnoreRoot = lfFindingsThatMatchCriteria_SmartTraces_NotDuplicated_IgnoreRoot.Count;
        }
示例#2
0
        public static void createXmlFileWithOnlyFindingsFromSmartTraceCall(String sTargetFileName,
                                                                           FindingNameFormat ffnFindingNameFormat,
                                                                           UInt32 uSmartTraceCallID,
                                                                           TraceType tTraceType,
                                                                           bool bFilterDuplicateFindings,
                                                                           bool bIgnoreRootCallInvocation,
                                                                           bool bChangeFindingData,
                                                                           O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6)
        {
            var ffstidFilter = new AnalysisFilters.filter_FindSmartTrace_byID(uSmartTraceCallID, tTraceType,
                                                                              bFilterDuplicateFindings,
                                                                              bIgnoreRootCallInvocation,
                                                                              ffnFindingNameFormat, bChangeFindingData);

            AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(ffstidFilter,
                                                                                                     fadO2AssessmentDataOunceV6);

            saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFileName, fadO2AssessmentDataOunceV6);

            restoreChangedData(bChangeFindingData, fadO2AssessmentDataOunceV6);
        }