internal static Task <bool> WriteToGraphMlFile(BasicGraphModel graph, string filename) { if (filename == String.Empty) { return(Task.FromResult(false)); } filename = Path.Combine(_graphdir, filename + ".xml"); TinkerGrapĥ tinkerGraph = new TinkerGrapĥ(); foreach (var node in graph.Nodes) { var vertex = tinkerGraph.AddVertex(node.Id); vertex.SetProperty("posx", node.Pos.X); vertex.SetProperty("posy", node.Pos.Y); vertex.SetProperty("name", node.Name != null?node.Name:" "); vertex.SetProperty("vgid", node.Id); } foreach (var edge in graph.Edges) { IVertex start = tinkerGraph.GetVertex(edge.StartNode.Id); IVertex end = tinkerGraph.GetVertex(edge.EndNode.Id); var edge_ = tinkerGraph.AddEdge(edge.Id, start, end, $"{edge.Weight}"); edge_.SetProperty("weight", edge.Weight); edge_.SetProperty("vgid", edge.Id); edge_.SetProperty("isdirected", graph.IsDirected); } GraphMlWriter writer = new GraphMlWriter(tinkerGraph); using (var fos = File.Open(filename, FileMode.Create)) { writer.OutputGraph(fos); } return(Task.FromResult(true)); }
public override void SaveGraphData(TinkerGrapĥ tinkerGrapĥ, string directory) { var filePath = string.Concat(directory, GraphFileGraphml); DeleteFile(filePath); GraphMlWriter.OutputGraph(tinkerGrapĥ, filePath); }
public static void SaveGraphml(this IGraph graph, string directory) { if (graph == null) { throw new ArgumentNullException(nameof(graph)); } var filePath = string.Concat(directory, GraphFileGraphml); DeleteFile(filePath); GraphMlWriter.OutputGraph(graph, filePath); }