コード例 #1
0
        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);
        }
コード例 #2
0
        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();
                    }
                }
            }
        }
コード例 #3
0
ファイル: SubstringFunc.cs プロジェクト: anukat2015/sones
 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;
     }
 }
コード例 #4
0
ファイル: ToLowerFunc.cs プロジェクト: anukat2015/sones
        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();
        }
コード例 #5
0
        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;
        }
コード例 #6
0
ファイル: AlterType_RenameType.cs プロジェクト: loubo/sones
 public override IVertexView CreateResult(GraphDB.TypeSystem.IVertexType myAlteredVertexType)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
ファイル: Exists.cs プロジェクト: loubo/sones
 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;
     }
 }
コード例 #8
0
ファイル: FromUNIXDate.cs プロジェクト: loubo/sones
        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;
            }
        }