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 void UpdateDB() { GraphDB db = new GraphDB(); //get the path to the folder with all the xml files var pathtoproject = AppDomain.CurrentDomain.BaseDirectory; foreach (string file in Directory.EnumerateFiles(Path.Combine(pathtoproject, inputfolder), "*.xml")) { //use the datacontractserialize to deserialize the xml content // check the database and update changed values or insert values if they dont exist DataContractSerializer deserializer = new DataContractSerializer(typeof(Node)); using (FileStream fs = new FileStream(file, FileMode.Open)) { using ( var reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas())) { var node = (Node)deserializer.ReadObject(reader, true); bool changed; if (changed = !db.Nodes.Any(x => x.Id == node.Id && x.label.Equals(node.Label))) { db.Nodes.RemoveRange(db.Nodes.Where(x => x.Id == node.Id || x.label.Equals(node.Label))); db.Nodes.Add(new Nodes() { Id = node.Id, label = node.Label }); } foreach (var id in node.AdjacentNodes) { if (!changed) { db.Edges.RemoveRange(db.Edges.Where(x => x.FromNode == node.Id)); } if (!db.Edges.Any(x => x.FromNode == node.Id && x.ToNode == id)) { db.Edges.Add(new Edges() { FromNode = node.Id, ToNode = id, Weight = 1 }); } } db.SaveChanges(); } } } }
public override bool ValidateWorkingBase(Object myWorkingBase, GraphDB.IGraphDB myGraphDB, Library.Commons.Security.SecurityToken mySecurityToken, Int64 myTransactionToken) { if (myWorkingBase != null) { return (myWorkingBase is IPropertyDefinition) && ((IPropertyDefinition)myWorkingBase).BaseType == typeof(String); } else { return false; } }
public override bool ValidateWorkingBase(Object myWorkingBase, GraphDB.IGraphDB myGraphDB, Library.Commons.Security.SecurityToken mySecurityToken, Int64 myTransactionToken) { if (myWorkingBase != null) { if ((myWorkingBase is IAttributeDefinition) && (myWorkingBase as IAttributeDefinition).Kind == AttributeType.Property && (myWorkingBase as IPropertyDefinition).IsUserDefinedType) { return false; } else { return true; } } else { return false; } throw new NotImplementedException(); }
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 override IVertexView CreateResult(GraphDB.TypeSystem.IVertexType myAlteredVertexType) { throw new NotImplementedException(); }
public override bool ValidateWorkingBase(Object myWorkingBase, GraphDB.IGraphDB myGraphDB, Library.Commons.Security.SecurityToken mySecurityToken, Library.Commons.Transaction.TransactionToken myTransactionToken) { if (myWorkingBase != null) { return true; } else { return false; } }
public override bool ValidateWorkingBase(Object myWorkingBase, GraphDB.IGraphDB myGraphDB, Library.Commons.Security.SecurityToken mySecurityToken, Library.Commons.Transaction.TransactionToken myTransactionToken) { if (myWorkingBase == typeof(Int64)) { return true; } else if ((myWorkingBase is IAttributeDefinition) && (myWorkingBase as IAttributeDefinition).Kind == AttributeType.Property && (myWorkingBase as IPropertyDefinition).BaseType.Name.Equals(("Int64"))) { return true; } else { return false; } }