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)); } }
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(); }
public void Write(XmlGraphData <TUIRawData, TEditorData> data, Stream stream) { serializer.Write(data, stream); }
public void Write(XmlGraphData <TUIRawData, TEditorData> data, Stream stream) { var serializer = new XmlConversation <TUIRawData, TEditorData> .Serializer(m_nodeUISerializer, m_editorDataSerializer); serializer.Write(data, stream); }