public static CxWSResultPath GetPathCommentsHistory(long scanId, long pathId) { if (CommonData.IsWorkingOffline) { return(SavedResultsManager.Instance.GetResultPath(scanId, pathId)); } CxWSResultPath res = null; LoginResult loginResult = getLoginResult(); CxWebServiceClient client; try { client = new CxWebServiceClient(loginResult.AuthenticationData); } catch (Exception e) { Logger.Create().Error(e.ToString()); MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK); return(null); } CxWSResponceResultPath cXWSResponseResults = client.ServiceClient.GetPathCommentsHistory(loginResult.SessionId, scanId, pathId, CxVSWebService.ResultLabelTypeEnum.Remark); if (!cXWSResponseResults.IsSuccesfull) { // show error message MessageBox.Show(cXWSResponseResults.ErrorMessage, "Error", MessageBoxButtons.OK); return(null); } res = cXWSResponseResults.Path; return(res); }
public IGraphPath FindPath(CxWSResultPath queryItem) { if (_graph == null || _graph.Paths == null) { return(null); } //gLocalViewer.Graph.Edges.Clear(); //gLocalViewer.Graph.NodeMap.Clear(); foreach (IGraphPath path in _graph.Paths) { if (path.DirectFlow.Count == queryItem.Nodes.Length) { bool isFound = true; for (int i = 0; i < path.DirectFlow.Count; i++) { IGraphItem item = path.DirectFlow[i]; CxWSPathNode pathItem = queryItem.Nodes[i]; if (item.Name != pathItem.Name || item.Line != pathItem.Line || item.Column != pathItem.Column) { isFound = false; break; } } if (isFound) { return(path); } } // Check in cases when path contain 1 element, graph contain 2 else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length == 1) { IGraphItem item1 = path.DirectFlow[0]; IGraphItem item2 = path.DirectFlow[1]; CxWSPathNode pathItem = queryItem.Nodes[0]; if (item1.CompareTo(item2) == 0 && item1.CompareTo(pathItem) == 0) { return(path); } } else if (path.DirectFlow.Count == 2 && queryItem.Nodes.Length > 2) { GraphItem item1 = path.DirectFlow[0]; GraphItem item2 = path.DirectFlow[1]; CxWSPathNode pathItem1 = queryItem.Nodes[0]; CxWSPathNode pathItem2 = queryItem.Nodes[queryItem.Nodes.Length - 1]; if (item1.CompareTo(pathItem1) == 0 && item2.CompareTo(pathItem2) == 0) { return(path); } } } return(null); }
private CxWSResultPath[] GetResultPathsForQuery(XmlNode xmlNode) { List <CxWSResultPath> outputItems = new List <CxWSResultPath>(); foreach (XmlNode resultNode in xmlNode.ChildNodes) { CxWSResultPath reportQueryItemResult = GetResultPath(resultNode); outputItems.Add(reportQueryItemResult); } return(outputItems.ToArray()); }
private CxWSResultPath GetResultPath(XmlNode resultNode) { int severity = 0; string assignedUser = ""; int state = 0; string lineValue = resultNode.Attributes["Line"].Value ?? resultNode.Attributes["line"].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; try { XmlAttribute severityAttribute = resultNode.Attributes["severity"] ?? resultNode.Attributes["Severity"]; if (severityAttribute.Value != null) { severity = (int)ReportQueryResult.SeverityTypeFromString(severityAttribute.Value); } } catch (Exception ex) { Logger.Create().Error(ex.ToString()); } try { assignedUser = resultNode.Attributes["AssignToUser"].Value; } catch (Exception ex) { Logger.Create().Error(ex.ToString()); } try { state = Convert.ToInt32(resultNode.Attributes["state"].Value); } catch (Exception ex) { Logger.Create().Error(ex.ToString()); try { state = falsePositiveValue != null?Convert.ToInt32(Convert.ToBoolean(falsePositiveValue)) : 0; } catch (Exception exc) { Logger.Create().Error(exc.ToString()); } } CxWSPathNode[] nodes = GetNodesForPath(resultNode.FirstChild); CxWSResultPath reportQueryItemResult = new CxWSResultPath { Comment = resultNode.Attributes["Remark"].Value ?? resultNode.Attributes["remark"].Value, PathId = pathIdValue != null?Convert.ToInt32(pathIdValue) : 0, Severity = severity, AssignedUser = assignedUser, State = state, SimilarityId = Convert.ToInt64(resultNode.FirstChild.Attributes["SimilarityId"].Value), Nodes = nodes, }; return(reportQueryItemResult); }
public IGraphPath FindPath(CxWSResultPath queryItem) { return(tblLayout.FindPath(queryItem)); }