/// <summary> /// This method return the representation of all edge in the workflow for WFeditor /// </summary> /// <returns>All edge in the workflow</returns> public XmlDocument GetEdgesForWFE() { XmlDocument rsult = new XmlDocument(); XmlElement allEdges = rsult.CreateElement("EDGES", ""); rsult.AppendChild(allEdges); foreach (WFedgeLabel edgeId in connectionGraph.Edges) { WFedgeLabel edgeValue = edgeId; Triple <WFedgeLabel, WFnode, WFnode> edgeInfos = connectionGraph.GetConnectingNodes(edgeId); XmlElement singleEdgeNode = rsult.CreateElement("EDGE"); XmlAttribute aFrom = rsult.CreateAttribute("from"); XmlAttribute aTo = rsult.CreateAttribute("to"); aFrom.Value = XmlConvert.EncodeLocalName(edgeInfos.SecondMember.NodeTypeName); aTo.Value = XmlConvert.EncodeLocalName(edgeInfos.ThirdMember.NodeTypeName); singleEdgeNode.Attributes.Append(aFrom); singleEdgeNode.Attributes.Append(aTo); /*Appending preconditions and actions*/ singleEdgeNode.AppendChild(rsult.ImportNode(edgeValue.GetEntireDescription().DocumentElement, true)); allEdges.AppendChild(singleEdgeNode); } return(rsult); }
/// <summary> /// This method return the representation of all edge in the workflow /// </summary> /// <returns>All edge in the workflow</returns> public XmlDocument GetEdges() { XmlDocument rsult = new XmlDocument(); XmlElement allEdges = rsult.CreateElement("EDGES", ""); var attr = rsult.CreateAttribute("workflowName"); attr.Value = editedWf.WorkflowName.FromNotEncodedRender2XmlValue(); allEdges.Attributes.Append(attr); rsult.AppendChild(allEdges); /*Add initial edge*/ XmlElement initialEdgeElement = rsult.CreateElement("EDGE"); XmlAttribute initialEdgeTo = rsult.CreateAttribute("to"); initialEdgeTo.Value = XmlConvert.EncodeLocalName(editedWf.initialNode.NodeTypeName); initialEdgeElement.Attributes.Append(initialEdgeTo); allEdges.AppendChild(initialEdgeElement); foreach (WFedgeLabel edgeId in editedWf.connectionGraph.Edges) { WFedgeLabel edgeValue = edgeId; Triple <WFedgeLabel, WFnode, WFnode> edgeInfos = editedWf.connectionGraph.GetConnectingNodes(edgeId); XmlElement singleEdgeNode = rsult.CreateElement("EDGE"); XmlAttribute aFrom = rsult.CreateAttribute("from"); XmlAttribute aTo = rsult.CreateAttribute("to"); aFrom.Value = XmlConvert.EncodeLocalName(edgeInfos.SecondMember.NodeTypeName); aTo.Value = XmlConvert.EncodeLocalName(edgeInfos.ThirdMember.NodeTypeName); singleEdgeNode.Attributes.Append(aFrom); singleEdgeNode.Attributes.Append(aTo); /*Appending preconditions and actions*/ singleEdgeNode.AppendChild(rsult.ImportNode(edgeValue.GetEntireDescription().DocumentElement, true)); allEdges.AppendChild(singleEdgeNode); } /*Adding edges for final nodes*/ foreach (WFnode finalNd in editedWf.finalNodes) { XmlElement singleEdgeNode = rsult.CreateElement("EDGE"); XmlAttribute aFrom = rsult.CreateAttribute("from"); aFrom.Value = XmlConvert.EncodeLocalName(finalNd.NodeTypeName); singleEdgeNode.Attributes.Append(aFrom); allEdges.AppendChild(singleEdgeNode); } return(rsult); }