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); }
public static String createAssessmentFileWithAllTraces(bool bDropDuplicateSmartTraces, bool bIgnoreRootCallInvocation, FindingNameFormat ffnFindingNameFormat, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { string sTargetFilename = calculateTargetFileName("ALL_TRACES", ffnFindingNameFormat); return createAssessmentFileWithAllTraces(bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, ffnFindingNameFormat, bChangeFindingData, fadO2AssessmentDataOunceV6, sTargetFilename); }
/* DC - Removed in order to make the SavedAssessmentFile Project non Ounce dependent public static void createSeparateAssessmentFileForActionObject(String sActionObjectId, FindingNameFormat ffnFindingNameFormat, bool bDropFindingsWithNoTraces, bool bFilterDuplicateFindings, bool bIgnoreRootCallInvocation, bool bChangeFindingData, o2AssessmentDataOunceV6 fadO2AssessmentData) { String sActionObjectName = Lddb.getActionObjectName(sActionObjectId); String sFileName = calculateTargetFileName(sActionObjectId + "_(" + sActionObjectName + ")" , ffnFindingNameFormat); DI.log.debug("Creating partial assessment file for ActionObjectID: {0}", sFileName); createXmlFileWithOnlyFindingsFromActionObject(sFileName, ffnFindingNameFormat, sActionObjectId, bDropFindingsWithNoTraces, bFilterDuplicateFindings, bIgnoreRootCallInvocation, bChangeFindingData, fadO2AssessmentData); // restoreChangedData(bChangeFindingData); } */ public static String calculateTargetFileName(String sExtraTag, FindingNameFormat ffnFindingNameFormat) { String sTargetDirectory = Path.GetDirectoryName(sFileLoaded) + "\\Analysis"; if (false == Directory.Exists(sTargetDirectory)) Directory.CreateDirectory(sTargetDirectory); if (ffnFindingNameFormat != FindingNameFormat.FindingType) sExtraTag += " (" + ffnFindingNameFormat + ")"; return sTargetDirectory + "\\" + Path.GetFileName(sFileLoaded) + "_" + sExtraTag + ".xml"; }
public static void createXmlFileWithOnlyFindingsFromActionObject(String sTargetFileName, FindingNameFormat ffnFindingNameFormat, String sActionObjectIdToFind, bool bDropFindingsWithNoTraces, bool bFilterDuplicateFindings, bool bIgnoreRootCallInvocation, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { var ffaoFilter = new AnalysisFilters.filter_FindActionObject(sActionObjectIdToFind, bDropFindingsWithNoTraces, bFilterDuplicateFindings, bIgnoreRootCallInvocation, ffnFindingNameFormat, bChangeFindingData); AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(ffaoFilter, fadO2AssessmentDataOunceV6); saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFileName, fadO2AssessmentDataOunceV6); restoreChangedData(bChangeFindingData, fadO2AssessmentDataOunceV6); }
/* public static void addFindingToDictionaries(AssessmentAssessmentFileFinding fFinding) { // populate ActionObjects Dictionary (dActionObjects) if (false == dActionObjects.ContainsKey(fFinding.actionobject_id)) { List<AssessmentAssessmentFileFinding> lfFindingsInActionObject = new List<AssessmentAssessmentFileFinding>(); lfFindingsInActionObject.Add(fFinding); dActionObjects.Add(fFinding.actionobject_id, lfFindingsInActionObject); } else { dActionObjects[fFinding.actionobject_id].Add(fFinding); } }*/ // this list contains the number of items on each entry /* DC - Removed in order to make the SavedAssessmentFile Project non Ounce dependent public static void calculateActionObjects_into_DataGridView(DataGridView dgvToPopulate, o2AssessmentDataOunceV6 fadO2AssessmentData) { List<String> lsActionObjects = getListWithUsedActionObjects(fadO2AssessmentData); if (lsActionObjects.Count > 0) { String sActionObjects = ""; for (int i = 0; i < lsActionObjects.Count; i++) { sActionObjects += " id = " + lsActionObjects[i]; if (i + 1 < lsActionObjects.Count) // means we are not in the one before last sActionObjects += " or "; } String sSqlQuery = Lddb.getSqlQueryForRetrivingActionObjectsData(sActionObjects); // mySql.runQueryAndPopulateDataGrid(dgvToPopulate, sSqlQuery); // get DataTable with ActionObjectId dgvToPopulate.Columns.Clear(); System.Data.DataTable dtDataTable = o2.ounce.datalayer.mysql.OunceMyql.getDataTableFromSqlQuery(sSqlQuery, true); // if dtDataTable contains data, bind it to DataGridView if (dtDataTable.Rows.Count > 0) { dtDataTable.Columns.Add("# Findings",typeof(Int32)); dtDataTable.Columns.Add("# SmartTraces", typeof(Int32)); dtDataTable.Columns.Add("# SmartTraces ND", typeof(Int32)); dtDataTable.Columns.Add("# SmartTraces IR", typeof(Int32)); dtDataTable.Columns.Add("# LostSinks", typeof(Int32)); dtDataTable.Columns.Add("# LostSinks ND", typeof(Int32)); dtDataTable.Columns.Add("# LostSinks IR", typeof(Int32)); foreach (DataRow drRow in dtDataTable.Rows) { if (drRow["id"] != null) { UInt32 iActionObjectId = (UInt32)(drRow["id"]); int iFindings = 0, iAssessmentFiles = 0, iSmartTraces = 0, iLostSinks = 0, iSmartTraces_NotDuplicate = 0, iSmartTraces_NotDuplicate_IgnoreRoot = 0, iLostSinks_NotDuplicate = 0, iLostSinks_NotDuplicate_IgnoreRoot = 0; calculateFindingsStatistics(fadO2AssessmentData.arAssessmentRun, iActionObjectId, true, ref iFindings, ref iAssessmentFiles, ref iSmartTraces, ref iLostSinks, ref iSmartTraces_NotDuplicate, ref iSmartTraces_NotDuplicate_IgnoreRoot, ref iLostSinks_NotDuplicate, ref iLostSinks_NotDuplicate_IgnoreRoot); drRow["# Findings"] = iFindings; drRow["# SmartTraces"] = iSmartTraces; drRow["# SmartTraces ND"] = iSmartTraces_NotDuplicate; drRow["# SmartTraces IR"] = iSmartTraces_NotDuplicate_IgnoreRoot; drRow["# LostSinks"] = iLostSinks; drRow["# LostSinks ND"] = iLostSinks_NotDuplicate; drRow["# LostSinks IR"] = iLostSinks_NotDuplicate_IgnoreRoot; } } dgvToPopulate.DataSource = dtDataTable; O2Forms.dataGridView_Utils_MaxColumnsWidth(dgvToPopulate); if (dgvToPopulate.Rows.Count > 0) dgvToPopulate.Columns[0].Selected = true; } } } */ /* DC - Removed in order to make the SavedAssessmentFile Project non Ounce dependent public static void createSeparateAssessmentFilesForEachActionObject(FindingNameFormat ffnFindingNameFormat, bool bDropFindingsWithNoTraces, bool bFilterDuplicateFindings, bool bIgnoreRootCallInvocation, bool bChangeFindingData, o2AssessmentDataOunceV6 fadO2AssessmentData) { DI.log.info("createSeparateAssessmentFilesForEachActionObject Start"); List<String> lsActionObjects = getListWithUsedActionObjects(fadO2AssessmentData); foreach(String sActionObjectId in lsActionObjects) { createSeparateAssessmentFileForActionObject(sActionObjectId, ffnFindingNameFormat, bDropFindingsWithNoTraces, bFilterDuplicateFindings, bIgnoreRootCallInvocation, bChangeFindingData, fadO2AssessmentData); } DI.log.info("createSeparateAssessmentFilesForEachActionObject End"); } */ public static void createSeparateAssessmentFileForSmartTraceCall(UInt32 uSmartTraceCallID, TraceType tTraceType, FindingNameFormat ffnFindingNameFormat, bool bFilterDuplicateFindings, bool bIgnoreRootCallInvocation, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { String sSmartTraceCall = fadO2AssessmentDataOunceV6.arAssessmentRun.StringIndeces[uSmartTraceCallID - 1].value; sSmartTraceCall = sSmartTraceCall.Replace(":", "_").Replace("*", "_"); // remove the : from SmartTrace name (since it prevents the file from being created) String sFileName = calculateTargetFileName(uSmartTraceCallID + "_(" + sSmartTraceCall + ")_LOST_SINK", ffnFindingNameFormat); DI.log.debug("Creating partial assessment file for Lost Sink: {0}", sFileName); createXmlFileWithOnlyFindingsFromSmartTraceCall(sFileName, ffnFindingNameFormat, uSmartTraceCallID, tTraceType, bFilterDuplicateFindings, bIgnoreRootCallInvocation, bChangeFindingData, fadO2AssessmentDataOunceV6); }
public static String createAssessmentFileWithLostSinks_OneExampleEach(String sTargetFilename, FindingNameFormat ffnFindingNameFormat, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { var ffulsFilter = new AnalysisFilters.filter_FindUniqueLostSinks(ffnFindingNameFormat, bChangeFindingData); AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(ffulsFilter, fadO2AssessmentDataOunceV6); saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFilename, fadO2AssessmentDataOunceV6); DI.log.debug("Custom Assessment File (with only one example per Lost Sinks) created: {0}", sTargetFilename); restoreChangedData(bChangeFindingData, fadO2AssessmentDataOunceV6); return sTargetFilename; }
/* public static void createAssessmentFileWithLostSinks_NoDuplicates(bool bIgnoreRootCallInvocation) { bool bDropDuplicateSmartTraces = true; AnalysisFilters.filter_FindLostSinks fflsFilter = new AnalysisFilters.filter_FindLostSinks(bDropDuplicateSmartTraces, bIgnoreRootCallInvocation); AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(fflsFilter); String sTargetFilename = calculateTargetFileName("LOST_SINKS_No_Duplicates"); saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFilename); DI.log.debug("Custom Assessment File (non duplicated Lost Sinks) created: {0}", sTargetFilename); // since we actually changed the object's contents during this analysis, reload the file loadAssessmentFile(sFileLoaded); }*/ public static String createAssessmentFileWithLostSinks_OneExampleEach(FindingNameFormat ffnFindingNameFormat, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { String sTargetFilename = calculateTargetFileName("LOST_SINKS_UNIQUE", ffnFindingNameFormat); return createAssessmentFileWithLostSinks_OneExampleEach(sTargetFilename, ffnFindingNameFormat, bChangeFindingData, fadO2AssessmentDataOunceV6); }
public static String createAssessmentFileWithLostSinks(bool bDropDuplicatedSmartTraces, bool bIgnoreRootCallInvocation, FindingNameFormat ffnFindingNameFormat, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6) { // create file to store results using a name that reflects the search criteria String sTargetFilenameExtraTag = "LOST_SINKS"; // if (bDropDuplicatedSmartTraces) sTargetFilenameExtraTag += "_NoDuplicates"; // if (bIgnoreRootCallInvocation) sTargetFilenameExtraTag += "_IgnoreRoot"; String sTargetFilename = calculateTargetFileName(sTargetFilenameExtraTag, ffnFindingNameFormat); // create filter using provided params var fflsFilter = new AnalysisFilters.filter_FindLostSinks(bDropDuplicatedSmartTraces, bIgnoreRootCallInvocation, ffnFindingNameFormat, bChangeFindingData); // execute filter and get object with results (custom saved project) AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(fflsFilter, fadO2AssessmentDataOunceV6); // save it saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFilename, fadO2AssessmentDataOunceV6); // all done restoreChangedData(bChangeFindingData, fadO2AssessmentDataOunceV6); DI.log.debug("Custom Assessment File with only Lost Sinks created: {0}", sTargetFilename); return sTargetFilename; }
public static String createAssessmentFileWithAllTraces(bool bDropDuplicateSmartTraces, bool bIgnoreRootCallInvocation, FindingNameFormat ffnFindingNameFormat, bool bChangeFindingData, O2AssessmentData_OunceV6 fadO2AssessmentDataOunceV6, string sTargetFilename) { var ffsmFilter = new AnalysisFilters.filter_FindSmartTraces(bDropDuplicateSmartTraces, bIgnoreRootCallInvocation, ffnFindingNameFormat, bChangeFindingData); AssessmentRun arFilteredAssessmentRun = createFilteredAssessmentRunObjectBasedOnCriteria(ffsmFilter, fadO2AssessmentDataOunceV6); saveFilteredAssessmentRun(arFilteredAssessmentRun, sTargetFilename, fadO2AssessmentDataOunceV6); DI.log.debug("Custom Assessment File with All Traces created: {0}", sTargetFilename); restoreChangedData(bChangeFindingData, fadO2AssessmentDataOunceV6); return sTargetFilename; }