public void buildSearchCriteriaAndExecuteSearch()
        {
            var lscSearchCriteria = new List <AnalysisSearch.SearchCriteria>();

            foreach (DataGridViewRow rRow in dgvSearchCriteria.Rows)
            {
                if (rRow.Cells[0].Value != null)
                {
                    String sSearchType = rRow.Cells[0].Value.ToString();
                    if (rRow.Cells[1].Value == null || rRow.Cells[1].Value.ToString() == "")
                    {
                        rRow.Cells[1].Value = ".";
                    }
                    String sSearchText     = rRow.Cells[1].Value.ToString();
                    bool   bNegativeSearch = false;
                    if (rRow.Cells[2].Value != null && ((bool)rRow.Cells[2].Value))
                    {
                        bNegativeSearch = true;
                    }
                    var scSearchCriteria = new AnalysisSearch.SearchCriteria(sSearchText,
                                                                             (AnalysisSearch.SearchType)
                                                                             Enum.Parse(
                                                                                 typeof(AnalysisSearch.SearchType),
                                                                                 sSearchType),
                                                                             cbSearchOnFindingsWithNoTraces.Checked,
                                                                             bNegativeSearch);
//                    scSearchCriteria.bSearchOnFindingsWithNoTraces = cbSearchOnFindingsWithNoTraces.Checked;
                    lscSearchCriteria.Add(scSearchCriteria);
                }
            }
            AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch = ExecuteSearch(lscSearchCriteria);
            loadGuiWithSavedAssessmentSearchData(sasSavedAssessmentSearch);
        }
Exemple #2
0
        public void loadAssessmentFileAndShowData(String sAssessmentFileToLoad, String sDefaultSearchCriteriaText)
        {
            sasSavedAssessmentSearch = new AnalysisSearch.SavedAssessmentSearch(sAssessmentFileToLoad);
            sasSavedAssessmentSearch.searchUsingCriteria(sDefaultSearchCriteriaText);

            loadTreeViewWithSearchResults();
        }
Exemple #3
0
        public static AnalysisSearch.SavedAssessmentSearch createSavedAssessmentSearchObjectFromNormalizedTraces(List <TreeNode> ltnNormalizedTraces)
        {
            //     if (tvTempTreeView.Nodes.Count > 0)
            //     {
            var sasSavedAssessmentSearch = new AnalysisSearch.SavedAssessmentSearch();

            //       foreach (TreeNode tnTreeNode in tvTempTreeView.Nodes)
            DI.log.debug("There are {0} Traces in ltnTraces to process", ltnNormalizedTraces.Count);
            foreach (TreeNode tnTreeNode in ltnNormalizedTraces)
            {
                FindingViewItem fviJoinedFindingViewItem =
                    creator.createJoinedUpFindingViewItemFromTreeNodeWithFindingViewItemAsTags(tnTreeNode);
                if (fviJoinedFindingViewItem != null && fviJoinedFindingViewItem.fFinding != null)
                {
                    var frFindingsResult =
                        new AnalysisSearch.FindingsResult(fviJoinedFindingViewItem.oadO2AssessmentDataOunceV6)
                    {
                        fFinding = fviJoinedFindingViewItem.fFinding,
                        fFile    =
                            fviJoinedFindingViewItem.oadO2AssessmentDataOunceV6.dFindings[
                                fviJoinedFindingViewItem.fFinding]
                    };
                    sasSavedAssessmentSearch.lfrFindingsResults.Add(frFindingsResult);
                    if (sasSavedAssessmentSearch.lfrFindingsResults.Count % 2500 == 0)
                    {
                        DI.log.debug("Create Trace # {0}/{1}", sasSavedAssessmentSearch.lfrFindingsResults.Count, ltnNormalizedTraces.Count);
                    }
                }
            }
            return(sasSavedAssessmentSearch);
        }
        private void btCreateAssessmentRun_WithSelectedFindingsType_Click(object sender, EventArgs e)
        {
            //           if (lbSearchResults_SearchCriteria.Items.Count > 0)
            //           {
            var dFilteredFindings = new Dictionary <string, List <FindingViewItem> >();

            foreach (TreeNode tnTreeNode in tv_CreateSavedAssessment_PerFindingsType.Nodes)
            {
                if (tnTreeNode.Checked)
                {
                    dFilteredFindings.Add(tnTreeNode.Text, (List <FindingViewItem>)tnTreeNode.Tag);
                }
            }

            var targetDir = tbSavedAssessment_FolderName.Text.Replace(@"\\", @"\");

            Files.checkIfDirectoryExistsAndCreateIfNot(targetDir);
            var targetfileName = tbSavedAssessmentFileName.Text.Replace('|', '_').Replace(':', '_').Replace('\\', '_').Replace('/', '_');

            String sTargetPath = Path.Combine(targetDir, targetfileName);//tbSavedAssessment_FolderName.Text, tbSavedAssessmentFileName.Text);

            AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch =
                ascx_FindingsSearchViewer1.sasSavedAssessmentSearch;
            // (AnalysisSearch.SavedAssessmentSearch)lbSearchResults_SearchCriteria.Items[0];
            CustomAssessmentFile.create_CustomSavedAssessmentRunFile_From_FindingsResult_Dictionary(dFilteredFindings,
                                                                                                    sTargetPath);
            //         }*/
        }
        public static String saveAssessmentSearchResultsAsNewAssessmentRunFile(
            AnalysisSearch.SavedAssessmentSearch sasSavedAsssessmentSearch, String sPathToNewAssessmentFile,
            bool bCreateFileWithAllTraces, bool bCreateFileWithUniqueTraces, bool bDropDuplicateSmartTraces,
            bool bIgnoreRootCallInvocation)
        {
            String sTargetFilename = "";

            if (bCreateFileWithAllTraces || bCreateFileWithUniqueTraces) // see if we have something to do
            {
                sPathToNewAssessmentFile = createAssessmentRunFileWithAllTracesFromSavedAssessmentSearch(sPathToNewAssessmentFile, sasSavedAsssessmentSearch, out sTargetFilename);


                if (bCreateFileWithUniqueTraces)
                {
                    sTargetFilename = fromAssessmentRunFileCreateNewFileWithUniqueTraces(sPathToNewAssessmentFile, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation);
                }

                if (bCreateFileWithAllTraces == false)
                {
                    // delete it if we said we were only interested on bCreateFileWithUniqueTraces
                    File.Delete(sPathToNewAssessmentFile);
                }
            }
            return(sTargetFilename); // sPathToNewAssessmentFile;
        }
        public static String saveAssessmentSearchResultsAsNewAssessmentRunFile(
            AnalysisSearch.SavedAssessmentSearch sasSavedAsssessmentSearch)
        {
            bool bCreateFileWithAllTraces    = true;
            bool bCreateFileWithUniqueTraces = false;
            // the next two are only used if bCreateFileWithUniqueTraces is set to true
            bool bDropDuplicateSmartTraces = true;
            bool bIgnoreRootCallInvocation = false;

            return(saveAssessmentSearchResultsAsNewAssessmentRunFile(sasSavedAsssessmentSearch, "",
                                                                     bCreateFileWithAllTraces,
                                                                     bCreateFileWithUniqueTraces,
                                                                     bDropDuplicateSmartTraces,
                                                                     bIgnoreRootCallInvocation));
        }
Exemple #7
0
        private void btCreateAssessmentRunWithSearchResults_Click(object sender, EventArgs e)
        {
            var sasSavedAssessmentSearch = new AnalysisSearch.SavedAssessmentSearch();

            // foreach (o2.analysis.FindingViewItem FindingViewItem in lbSearchResults_Findings.Items)
            // {
            //     o2.analysis.FindingViewItem fviFindingViewItem = (o2.analysis.FindingViewItem)oFindingViewItem;
            //     sasSavedAssessmentSearch.lfrFindingsResults.Add(fviFindingViewItem.frFindingResult);
            // }
            sasSavedAssessmentSearch.lfrFindingsResults = getListOfFindingsResultsFromCurrentListOfViewSearchItems();
            CustomAssessmentFile.saveAssessmentSearchResultsAsNewAssessmentRunFile(sasSavedAssessmentSearch, "",
                                                                                   cbCreateFileWithAllTraces.Checked,
                                                                                   cbCreateFileWithUniqueTraces.Checked,
                                                                                   cbDropDuplicateSmartTraces.Checked,
                                                                                   cbIgnoreRootCallInvocation.Checked);
        }
Exemple #8
0
        public void setSavedAssessmentSearchAndLoadData(AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch)
        {
            this.sasSavedAssessmentSearch = sasSavedAssessmentSearch;
            if (tvSearchFilters.Nodes.Count == 0)
            {
                tvSearchFilters.Nodes.Add("Search Text");
            }

            /*
             * if (sasSavedAssessmentSearch.lscSearchCriteria.Count > 0)
             * {
             *  tvSearchFilters.Nodes.Clear();
             *  //tvSearchFilters.Nodes.Add(sasSavedAssessmentSearch.lscSearchCriteria[sasSavedAssessmentSearch.lscSearchCriteria.Count - 1].stSearchType.ToString());
             *  tvSearchFilters.Nodes.Add("Search Text");
             * }*/
            loadTreeViewWithSearchResults();
        }
Exemple #9
0
        public static string createAssessmentFileFromSavedAssessmentSearchObject(
            AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch, string targetFolder, string fileNamePrefix, bool bCreateFileWithAllTraces,
            bool bCreateFileWithUniqueTraces, bool bDropDuplicateSmartTraces, bool bIgnoreRootCallInvocation)
        {
            String sTargetFile = "";

            if (Directory.Exists(targetFolder))
            {
                sTargetFile = Path.Combine(targetFolder, fileNamePrefix + "_ALLTRACES");
            }


            return(CustomAssessmentFile.saveAssessmentSearchResultsAsNewAssessmentRunFile(
                       sasSavedAssessmentSearch,
                       sTargetFile,
                       bCreateFileWithAllTraces, bCreateFileWithUniqueTraces, bDropDuplicateSmartTraces, bIgnoreRootCallInvocation));
        }
        public void loadGuiWithSavedAssessmentSearchData(AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch)
        {
            if (sasSavedAssessmentSearch != null)
            {
                String sNumberOfResults = String.Format("There were {0} results",
                                                        sasSavedAssessmentSearch.lfrFindingsResults.Count);
                DI.log.info(sNumberOfResults);
                lbNumberOfSearchResults.Text = sNumberOfResults;

                //AnalysisSearch.GUI.populateFindingsResults_TextMatches(sasSavedAssessmentSearch.lfrFindingsResults, lbSearchResults_TextMatches, cbSearchResults_TextMatches_UniqueList.Checked, cbSearchResults_TextMatches_ShowApplicationAndProjectName.Checked);

                //populateFindingsResults_Findings(sasSavedAssessmentSearch.lfrFindingsResults, cbSearchResults_Findings_Filter.Text, cbSearchResults_Findings_UniqueList.Checked);

                ascx_FindingsSearchViewer1.setSavedAssessmentSearchAndLoadData(sasSavedAssessmentSearch);
                //addSearchDataToListBox(sasSavedAssessmentSearch);
                addSearchToPreviousSearchList(sasSavedAssessmentSearch);

                //AnalysisSearch.GUI.populateWithDictionaryOfFilteredFindings_TreeView(tv_CreateSavedAssessment_PerFindingsType, dFilteredFindings);
            }
        }
        public void addSearchToPreviousSearchList(
            AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch_ToAddToList)
        {
            bool bSearchAlreadyOnList = false;

            tbSavedAssessmentFileName.Text =
                sasSavedAssessmentSearch_ToAddToList.ToString().Replace('|', '_').Replace(':', '_').Replace('\\', '_').
                Replace('/', '_') + ".xml";
            foreach (Object oItem in lbPreviousSearches.Items)
            {
                var sasSavedAssessmentSearch = (AnalysisSearch.SavedAssessmentSearch)oItem;
                if (sasSavedAssessmentSearch.ToString() == sasSavedAssessmentSearch_ToAddToList.ToString())
                {
                    bSearchAlreadyOnList = true;
                }
            }
            if (false == bSearchAlreadyOnList)
            {
                lbPreviousSearches.Items.Add(sasSavedAssessmentSearch_ToAddToList);
            }
        }
 private void btCreateAssessmentRunWithSearchResults_Click(object sender, EventArgs e)
 {
     //       if (lbSearchResults_SearchCriteria.Items.Count > 0)
     {
         var targetDir = tbSavedAssessment_FolderName.Text.Replace(@"\\", @"\");
         Files.checkIfDirectoryExistsAndCreateIfNot(targetDir);
         var    targetfileName = tbSavedAssessmentFileName.Text.Replace('|', '_').Replace(':', '_').Replace('\\', '_').Replace('/', '_');
         String sTargetPath    = Path.Combine(targetDir, targetfileName);
         AnalysisSearch.SavedAssessmentSearch sasSavedAssessmentSearch =
             ascx_FindingsSearchViewer1.sasSavedAssessmentSearch;
         // (AnalysisSearch.SavedAssessmentSearch)lbSearchResults_SearchCriteria.Items[0];
         CustomAssessmentFile.saveAssessmentSearchResultsAsNewAssessmentRunFile(sasSavedAssessmentSearch,
                                                                                sTargetPath,
                                                                                cbCreateFileWithAllTraces.Checked,
                                                                                cbCreateFileWithUniqueTraces.
                                                                                Checked,
                                                                                cbDropDuplicateSmartTraces.
                                                                                Checked,
                                                                                cbIgnoreRootCallInvocation.
                                                                                Checked);
     }
 }
        public AnalysisSearch.SavedAssessmentSearch ExecuteSearch(List <AnalysisSearch.SearchCriteria> lscSearchCriteria)
        {
            if (lbLoadedAssessmentFiles.Items.Count == 0)
            {
                DI.log.error("in ExecuteSearch: There is no assessment file loaded");
                return(null);
            }
            else
            {
                var lfadAssessmentData = new List <O2AssessmentData_OunceV6>();
                foreach (object oItem in lbLoadedAssessmentFiles.Items)
                {
                    lfadAssessmentData.Add((O2AssessmentData_OunceV6)oItem);
                }
                var sasSavedAssessmentSearch = new AnalysisSearch.SavedAssessmentSearch();
                sasSavedAssessmentSearch.setTargetO2AssessmentDataList(lfadAssessmentData);

                sasSavedAssessmentSearch.searchUsingCriteria(lscSearchCriteria);
                vars.set_("PreviousSearch", sasSavedAssessmentSearch);

                return(sasSavedAssessmentSearch);
            }
        }
        private static string createAssessmentRunFileWithAllTracesFromSavedAssessmentSearch(string sPathToNewAssessmentFile, AnalysisSearch.SavedAssessmentSearch sasSavedAsssessmentSearch, out string sTargetFilename)
        {
            DI.log.debug("Creating SavedAssessmentFile from traces calculated");
            if (sPathToNewAssessmentFile == "")
            {
                sPathToNewAssessmentFile = DI.config.TempFileNameInTempDirectory;
            }
            //if (sPathToNewAssessmentFile.IndexOf(".xml") == -1)
            sPathToNewAssessmentFile += ".ozasmt";
            var maxFindingsToSave = 25000;

            if (sasSavedAsssessmentSearch.lfrFindingsResults.Count > maxFindingsToSave)
            {
                DI.log.debug("NOTE: due to the large number of findings ({0}) multiple assessment files will be created (each with a maximum of {1} findings",
                             sasSavedAsssessmentSearch.lfrFindingsResults.Count, maxFindingsToSave);
                var index              = 1;
                var itemsProcessed     = 1;
                var lfrFindingsResults = new List <AnalysisSearch.FindingsResult>();

                foreach (AnalysisSearch.FindingsResult frFindingsResult in sasSavedAsssessmentSearch.lfrFindingsResults)
                {
                    //lfrFindingsResults.GetRange(0, 0);
                    lfrFindingsResults.Add(frFindingsResult);
                    if ((itemsProcessed++) % maxFindingsToSave == 0)
                    {
                        sTargetFilename = sPathToNewAssessmentFile.Replace(".ozasmt", string.Format("_part_{0}.ozasmt", index++));
                        DI.log.debug("Saving {0} findings to {1}", lfrFindingsResults.Count, sTargetFilename);
                        create_CustomSavedAssessmentRunFile_From_FindingsResult_List(lfrFindingsResults, sTargetFilename);
                        lfrFindingsResults = new List <AnalysisSearch.FindingsResult>();
                    }
                }
                // do the remaining ones
                sTargetFilename = sPathToNewAssessmentFile.Replace(".ozasmt", string.Format("_part_{0}.ozasmt", index));
                DI.log.debug("Saving {0} findings to {1}", lfrFindingsResults.Count, sTargetFilename);
                create_CustomSavedAssessmentRunFile_From_FindingsResult_List(lfrFindingsResults, sTargetFilename);
                sPathToNewAssessmentFile = sTargetFilename;   // assigned the last one to this
            }
            else
            {
                DI.log.debug("There are {0} findings to save", sasSavedAsssessmentSearch.lfrFindingsResults.Count);
                // we always need to create this one
                //DI.log.debug("Create file with all traces");

                //create_CustomSavedAssessmentRunFile_From_FindingsResult_List(lfrFindingsResults_UniqueFindings,
                create_CustomSavedAssessmentRunFile_From_FindingsResult_List(sasSavedAsssessmentSearch.lfrFindingsResults, sPathToNewAssessmentFile);
            }
            sTargetFilename = sPathToNewAssessmentFile;
            return(sPathToNewAssessmentFile);

            /*
             * DI.log.debug("Calculate  List of Findings to save");
             *
             * var lfUniqueFindings = new List<AssessmentAssessmentFileFinding>();
             * var lfrFindingsResults_UniqueFindings = new List<AnalysisSearch.FindingsResult>();
             * var itemsProcessed = 0;
             * var itemsToProcess = sasSavedAsssessmentSearch.lfrFindingsResults.Count;
             * foreach (AnalysisSearch.FindingsResult frFindingsResult in sasSavedAsssessmentSearch.lfrFindingsResults)
             * {
             *  if (false == lfUniqueFindings.Contains(frFindingsResult.fFinding))
             *  {
             *      lfUniqueFindings.Add(frFindingsResult.fFinding);
             *      lfrFindingsResults_UniqueFindings.Add(frFindingsResult);
             *  }
             *  if ((itemsProcessed++) % 1000 == 0)
             *      DI.log.info("Processed [{0}/{1}] - {2}", itemsProcessed, itemsToProcess, lfUniqueFindings.Count);
             * }
             * DI.log.debug("There are {0} findings to save", lfrFindingsResults_UniqueFindings.Count);*/
        }