private GraphModel GraphSetup() { GraphDB db = new GraphDB(); var graph = new GraphModel(); //get all the nodes foreach (var node in db.Nodes) { var dataVertex = new DataVertex() { ID = node.Id, Text = node.label }; graph.AddVertex(dataVertex); nodeList.Add(node.Id, node.label); } var vlist = graph.Vertices.ToList(); //add all the edges foreach (var node in vlist) { Dictionary <int, int> edges = new Dictionary <int, int>(); foreach (var edge in db.Edges.Where(x => x.FromNode == node.ID)) { var dataEdge = new DataEdge(node, vlist[vlist.FindIndex(x => x.ID == edge.ToNode)]); graph.AddEdge(dataEdge); edges.Add(edge.ToNode, 1); } vertices.Add(node.ID, edges); } return(graph); }
public static void CreateEdges(ref GraphModel graphModel) { for (int i = 0; i < graphModel.Vertices.Count(); i++) { for (int j = i; j < graphModel.Vertices.Count(); j++) { if (graphModel.MatrixSmezh[i, j] != EdgeType.none) { graphModel.AddEdge(new EdgeData(graphModel.Vertices.ElementAt(i), graphModel.Vertices.ElementAt(j), graphModel.MatrixSmezh[i, j])); } } } }
private GraphModel GraphSetup() { GraphDB db = new GraphDB(); var graph = new GraphModel(); //get all the nodes foreach (var node in db.Nodes) { var dataVertex = new DataVertex() { ID = node.Id, Text = node.label }; graph.AddVertex(dataVertex); nodeList.Add(node.Id,node.label); } var vlist = graph.Vertices.ToList(); //add all the edges foreach (var node in vlist) { Dictionary<int,int> edges = new Dictionary<int, int>(); foreach (var edge in db.Edges.Where(x => x.FromNode == node.ID)) { var dataEdge = new DataEdge(node, vlist[vlist.FindIndex(x => x.ID == edge.ToNode)]); graph.AddEdge(dataEdge); edges.Add(edge.ToNode,1); } vertices.Add(node.ID,edges); } return graph; }
public static GraphModel ParseGraphJson(string json, string root) { ZLog.Log("ParseGraphJson..." + json.Length); if (string.IsNullOrEmpty(json)) { return(null); } try { var obj = JsonMapper.ToObject(json); GraphModel model = new GraphModel(root) { name = (string)obj["name"], }; if (((IDictionary)obj).Contains("parent")) { model.Parent = (string)obj["parent"]; } var center = (string)obj["center"]; model.SetCenter(center); var nodes = obj["nodes"]; if (nodes != null && nodes.IsArray) { foreach (JsonData item in nodes) { NodeInfo node = new NodeInfo { UID = (string)item["uid"], name = (string)item["name"], avatar = (string)item["avatar"], type = (string)item["type"], parent = center }; if (string.IsNullOrEmpty(node.avatar)) { node.avatar = Path.Combine(root, "cover/" + node.name + ".png"); } node.fullPath = Path.Combine(root, "entity/entity_" + node.UID + ".json"); model.AddNode(node, null); } } var edges = obj["edges"]; if (edges != null && edges.IsArray) { foreach (JsonData item in edges) { LinkInfo edge = new LinkInfo { UID = (string)item["uid"], name = (string)item["name"], direction = (DirectionType)(int)item["direction"] }; var from = (string)item["from"]; edge.from = model.GetNode(from); var to = (string)item["to"]; edge.to = model.GetNode(to); if (((IDictionary)item).Contains("type")) { edge.type = (string)item["type"]; } model.AddEdge(edge); } model.CheckVirtualNodes(); } return(model); } catch (Exception e) { ZLog.Warning(json); ZLog.Warning(e.Message); return(null); } }