public void Write(ConversationNode <TNodeUI, TTransitionUI> condition) { var id = new XAttribute("Id", condition.Id.ToString()); var guid = new XAttribute("Guid", condition.Guid.ToString()); var node = new XElement("Node", id, guid); m_nodeUISerializer.Write(condition.Renderer, node); //TODO: Bad cast //WriteArea(condition, node); WriteLinks(condition, node); foreach (var parameter in condition.Parameters) { var p = new XElement("Parameter", new XAttribute("guid", parameter.Guid), new XAttribute("value", parameter.ValueAsString())); node.Add(p); } m_root.Add(node); }
//private void WriteOutputs(IEditable ng, XElement node) //{ // foreach (var n in ng.Outputs()) // { // var guid = new XAttribute("guid", n.ID.Serialized()); // var outputNode = new XElement("Output", guid); // foreach (var link in n.Connections) // { // var to = new XAttribute("To", link.Parent.NodeID.Serialized()); // var linkNode = new XElement("Link", to); // outputNode.Add(linkNode); // } // node.Add(outputNode); // } //} //private void WriteConnectors(IEditable a, XElement node) //{ // foreach (var n in a.Connectors) // { // var guid = new XAttribute("guid", n.ID.Serialized()); // var outputNode = new XElement("Connector", guid); // node.Add(outputNode); // } //} private void Write(GraphAndUI <TUIRawData> con, XElement root) { var id = new XAttribute("Id", con.GraphData.NodeId.Serialized()); var guid = new XAttribute("Guid", con.GraphData.NodeTypeId.Serialized()); var node = new XElement("Node", id, guid); m_nodeUISerializer.Write(con.UIData, node); //WriteOutputs(con.GraphData, node); //WriteConnectors(con.GraphData, node); foreach (var parameter in con.GraphData.Parameters) { var value = parameter.ValueAsString(); if (value != null) { var p = new XElement("Parameter", new XAttribute("guid", parameter.Id.Serialized()), new XAttribute("value", value)); node.Add(p); } } root.Add(node); }