コード例 #1
0
        public static IGraphPath Convert(ReportQueryItemResult queryItem, int columnNumber)
        {
            IGraphPath outputPath = new GraphPath();

            outputPath.DirectFlow = new List <GraphItem>();

            for (int i = 0; i < queryItem.Paths.Count; i++)
            {
                if (i == 0 || i == queryItem.Paths.Count - 1)
                {
                    ReportQueryItemPathResult item = queryItem.Paths[i];

                    GraphItem graphItem = (GraphItem)Convert(item, columnNumber, i == 0 ? 0 : 1);
                    graphItem.Parent = outputPath;

                    outputPath.DirectFlow.Add(graphItem);
                }
            }

            // To show two nodes in graph view if only one available
            if (outputPath.DirectFlow.Count == 1)
            {
                GraphItem graphItem = (GraphItem)Convert(queryItem.Paths[0], columnNumber, 1);
                graphItem.Parent = outputPath;

                outputPath.DirectFlow.Add(graphItem);
            }

            return(outputPath);
        }
コード例 #2
0
        public static IGraph Convert(TreeNodeData treeNode)
        {
            IGraph outputGraph = new Graph();

            CxViewerAction.CxVSWebService.CxWSResultPath[] paths = PerspectiveHelper.GetResultPathsForQuery(treeNode.ScanId, treeNode.Id);
            treeNode.QueryResult.Paths = ConvertAllNodesToPathes(paths, treeNode.Id, treeNode.QueryResult);
            outputGraph.Severity       = treeNode.Severity;
            outputGraph.Paths          = new List <GraphPath>();

            for (int i = 0; i < paths.Length; i++)
            {
                ReportQueryItemResult path = new ReportQueryItemResult()
                {
                    Column   = paths[i].Nodes[0].Column,
                    FileName = paths[i].Nodes[0].FileName,
                    Line     = paths[i].Nodes[0].Line,
                    NodeId   = paths[i].Nodes[0].PathNodeId,
                    PathId   = paths[i].PathId,
                    Query    = treeNode.QueryResult
                };
                path.Paths = ConvertNodesToPathes(paths[i].Nodes, treeNode.QueryResult, path);
                outputGraph.AddNewPath(Convert(path, i));
            }

            return(outputGraph);
        }
コード例 #3
0
        void UpdateGridShowPath()
        {
            Font font = GetColumnFont();

            foreach (DataGridViewRow row in dgvProjects.Rows)
            {
                try
                {
                    bool isFalsePositive = false;
                    ReportQueryItemResult reportQueryItemPathResult = row.Cells["ResultEntity"].Value as ReportQueryItemResult;
                    if (reportQueryItemPathResult != null)
                    {
                        if (!reportQueryItemPathResult.FalsePositive)
                        {
                            row.DefaultCellStyle.Font      = new Font(font, FontStyle.Regular);
                            row.DefaultCellStyle.ForeColor = Color.Black;
                            isFalsePositive = true;
                        }
                        else
                        {
                            row.DefaultCellStyle.Font      = new Font(font, FontStyle.Strikeout);
                            row.DefaultCellStyle.ForeColor = Color.LightGray;
                        }
                    }


                    if (row.Cells["State"].Value != null && Convert.ToInt32(row.Cells["State"].Value) == 1)
                    {
                        row.DefaultCellStyle.Font = new Font(font, FontStyle.Strikeout);
                        isFalsePositive           = true;
                    }

                    if (row.Cells[Constants.COL_NAME_STATUS].Value != null)
                    {
                        string rowStatus = row.Cells[Constants.COL_NAME_STATUS].Value.ToString();
                        if (rowStatus == SavedResultsManager.RESULT_STATUS_NEW_TEXT)
                        {
                            row.Cells[Constants.COL_NAME_STATUS].Style.Font      = new Font(font, FontStyle.Bold);
                            row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = Color.Red;
                        }
                        else if (rowStatus == SavedResultsManager.RESULT_STATUS_RECURRENT_TEXT)
                        {
                            row.Cells[Constants.COL_NAME_STATUS].Style.Font      = new Font(font, FontStyle.Bold);
                            row.Cells[Constants.COL_NAME_STATUS].Style.ForeColor = ColorTranslator.FromHtml("#FBB917");//an orange flavour
                        }
                        if (isFalsePositive)
                        {
                            row.Cells[Constants.COL_NAME_STATUS].Style.Font = new Font(font, FontStyle.Bold | FontStyle.Strikeout);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Create().Error(ex.ToString());
                }
            }
        }
コード例 #4
0
        public static IGraph Convert(ReportQueryResult query)
        {
            IGraph outputGraph = new Graph();

            outputGraph.Severity = query.Severity;
            outputGraph.Paths    = new List <GraphPath>();

            for (int i = 0; i < query.Paths.Count; i++)
            {
                ReportQueryItemResult path = query.Paths[i];
                outputGraph.AddNewPath(Convert(path, i));
            }

            return(outputGraph);
        }
コード例 #5
0
        /// <summary>
        /// Convert XML string into ReportQueryItemPathResult list
        /// </summary>
        /// <param name="xmlNode"></param>
        /// <returns></returns>
        private static List <ReportQueryItemResult> ParseQueryResult(XmlNode xmlNode)
        {
            List <ReportQueryItemResult> outputItems = new List <ReportQueryItemResult>();

            if (xmlNode.FirstChild == null)
            {
                return(outputItems);
            }
            foreach (XmlNode resultNode in xmlNode.ChildNodes)
            {
                string lineValue          = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].Value;
                string columnValue        = resultNode.Attributes["Column"].Value ?? resultNode.Attributes["column"].Value;
                string nodeIdValue        = resultNode.Attributes["NodeId"].Value ?? resultNode.Attributes["nodeId"].Value;
                string falsePositiveValue = resultNode.Attributes["FalsePositive"].Value ?? resultNode.Attributes["falsePositive"].Value;
                string pathIdValue        = resultNode.FirstChild.Attributes["PathId"].Value ?? resultNode.FirstChild.Attributes["pathId"].Value;
                string resultIdValue      = resultNode.FirstChild.Attributes["ResultId"].Value ?? resultNode.FirstChild.Attributes["resultId"].Value;
                ReportQueryItemResult reportQueryItemResult = new ReportQueryItemResult
                {
                    FileName                       = resultNode.Attributes["FileName"].Value ?? resultNode.Attributes["fileName"].Value,
                    Line                           = lineValue != null?Convert.ToInt32(lineValue) : 0,
                                            Column = columnValue != null?Convert.ToInt32(columnValue) : 0,
                                                         NodeId = nodeIdValue != null?Convert.ToInt32(nodeIdValue) : 0,
                                                                      FalsePositive = falsePositiveValue != null?Convert.ToBoolean(falsePositiveValue) : false,
                                                                                          Remark = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value,
                                                                                          PathId = pathIdValue != null?Convert.ToInt32(pathIdValue) : 0,
                                                                                                       ResultId = resultIdValue != null?Convert.ToInt32(resultIdValue) : 0
                };
                reportQueryItemResult.Paths = ParseQueryItemPathResult(resultNode.FirstChild, reportQueryItemResult);
                if (outputItems.Find(r => r.CompareTo(reportQueryItemResult) == 0) == null)
                {
                    outputItems.Add(reportQueryItemResult);
                }
            }

            return(outputItems);
        }
コード例 #6
0
        public static List <ReportQueryItemPathResult> ConvertNodesToPathes(CxViewerAction.CxVSWebService.CxWSPathNode[] cxWSPathNode, ReportQueryResult queryResult, ReportQueryItemResult queryItemResult)
        {
            List <ReportQueryItemPathResult> list = new List <ReportQueryItemPathResult>();

            foreach (CxViewerAction.CxVSWebService.CxWSPathNode node in cxWSPathNode)
            {
                list.Add(new ReportQueryItemPathResult()
                {
                    Name      = node.Name,
                    FileName  = node.FileName,
                    Line      = node.Line,
                    NodeId    = node.PathNodeId,
                    Length    = node.Length,
                    Column    = node.Column,
                    Query     = queryResult,
                    QueryItem = queryItemResult
                });
            }
            return(list);
        }
コード例 #7
0
 public Graph(ReportQueryItemResult queryItem)
 {
     _paths = new List <GraphPath>();
     _paths.Add((GraphPath)GraphHelper.Convert(queryItem, 0));
     _severity = queryItem.Query.Severity;
 }
コード例 #8
0
        internal static List <ReportQueryItemPathResult> ParseQueryItemPathResult(XmlNode xmlNode, ReportQueryItemResult parent)
        {
            List <ReportQueryItemPathResult> outputItems = new List <ReportQueryItemPathResult>();


            foreach (XmlNode pathNode in xmlNode.ChildNodes)
            {
                ReportQueryItemPathResult reportQueryItemPathResult = new ReportQueryItemPathResult();
                reportQueryItemPathResult.QueryItem = parent;
                foreach (XmlNode pathSubNode in pathNode.ChildNodes)
                {
                    switch (pathSubNode.Name.ToLower())
                    {
                    case "filename": reportQueryItemPathResult.FileName = pathSubNode.InnerText; break;

                    case "line": reportQueryItemPathResult.Line = int.Parse(pathSubNode.InnerText); break;

                    case "column": reportQueryItemPathResult.Column = int.Parse(pathSubNode.InnerText); break;

                    case "name": reportQueryItemPathResult.Name = pathSubNode.InnerText; break;

                    case "length": reportQueryItemPathResult.Length = int.Parse(pathSubNode.InnerText); break;

                    case "nodeid": reportQueryItemPathResult.NodeId = int.Parse(pathSubNode.InnerText); break;
                    }
                }
                outputItems.Add(reportQueryItemPathResult);
            }


            return(outputItems);
        }