コード例 #1
0
        /// <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);
        }
コード例 #2
0
            /// <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);
            }