Пример #1
0
            private static void WriteLinks(XmlGraphData <TUIRawData, TEditorData> conversation, XElement root)
            {
                HashSet <UnorderedTuple2 <Tuple <Id <TConnector>, IConversationNodeData> > > links = new HashSet <UnorderedTuple2 <Tuple <Id <TConnector>, IConversationNodeData> > >();

                foreach (var n in conversation.Nodes)
                {
                    foreach (var c in n.GraphData.Connectors)
                    {
                        foreach (var cc in c.Connections)
                        {
                            var pair1 = Tuple.Create(c.Id, n.GraphData);
                            var pair2 = Tuple.Create(cc.Id, cc.Parent);
                            links.Add(UnorderedTuple.Make(pair1, pair2));
                        }
                    }
                }

                foreach (var link in links)
                {
                    var node1      = new XAttribute("node1", link.Item1.Item2.NodeId.Serialized());
                    var connector1 = new XAttribute("connector1", link.Item1.Item1.Serialized());
                    var node2      = new XAttribute("node2", link.Item2.Item2.NodeId.Serialized());
                    var connector2 = new XAttribute("connector2", link.Item2.Item1.Serialized());
                    root.Add(new XElement("Link", node1, connector1, node2, connector2));
                }
            }
Пример #2
0
            public void Write(XmlGraphData <TUIRawData, TEditorData> data, Stream stream)
            {
                var document = new XDocument();
                var root     = new XElement(Root, new XAttribute("xmlversion", XmlVersionWrite));

                document.Add(root);
                foreach (var node in data.Nodes)
                {
                    Write(node, root);
                }

                WriteLinks(data, root);

                m_editorDataSerializer.Write(data.EditorData, root);
                stream.Position = 0;
                stream.SetLength(0);
                document.Save(stream);
                stream.Flush();
            }
Пример #3
0
 public void Write(XmlGraphData <TUIRawData, TEditorData> data, Stream stream)
 {
     serializer.Write(data, stream);
 }
Пример #4
0
            public void Write(XmlGraphData <TUIRawData, TEditorData> data, Stream stream)
            {
                var serializer = new XmlConversation <TUIRawData, TEditorData> .Serializer(m_nodeUISerializer, m_editorDataSerializer);

                serializer.Write(data, stream);
            }