internal void SerializeNetwork(string filePath)
{
var settings = new XmlWriterSettings
{
Indent = true,
NewLineOnAttributes = false,
Encoding = new UTF8Encoding()
};
StringWriter sb = new StringWriterWithEncoding(Encoding.UTF8);
using (var xmlWriter = XmlWriter.Create(sb, settings))
{
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Document");
xmlWriter.WriteStartAttribute("GraphFlowDirection");
xmlWriter.WriteValue(GraphFlowDirection.ToString());
xmlWriter.WriteEndAttribute();
xmlWriter.WriteStartElement("Nodes");
foreach (var node in NodeCollection)
{
xmlWriter.WriteStartElement(node.GetType().ToString());
node.SerializeNetwork(xmlWriter);
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("Connectors");
foreach (var connector in ConnectorCollection)
{
xmlWriter.WriteStartElement(connector.GetType().ToString());
connector.SerializeNetwork(xmlWriter);
xmlWriter.WriteEndElement();
}
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
}
File.WriteAllText(filePath, sb.ToString());
}