public void TestCreateManyVertices() { using (TestDatabaseContext testContext = new TestDatabaseContext()) { using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { // prerequisites database .Create.Class("TestVertexClass") .Extends <OVertex>() .Run(); for (int i = 0; i < 1000; i++) { OVertex testVertex = new OVertex(); testVertex.OClassName = "TestVertexClass"; testVertex.SetField("foo", "foo string value"); testVertex.SetField("bar", i); database.Transaction.Add(testVertex); } database.Transaction.Commit(); var createdVertices = database.Select().From("V").ToList(); Assert.AreEqual(1000, createdVertices.Count); for (int i = 0; i < 1000; i++) { Assert.AreEqual(i, createdVertices[i].GetField <int>("bar")); } } } }
private static OVertex CreateTestVertex(int iBar) { OVertex testVertex = new OVertex(); testVertex.OClassName = "TestVertexClass"; testVertex.SetField("foo", "foo string value"); testVertex.SetField("bar", iBar); return(testVertex); }
private bool ProcessBlock(Block block) { var blockTime = block.Header.BlockTime.LocalDateTime; using (var db = new ODatabase("localhost", 2424, "txgraph", ODatabaseType.Graph, "admin", "admin")) { db.DatabaseProperties.ORID = new ORID(); var tx = db.Transaction; try { foreach (var transaction in block.Transactions) { var vertex = new OVertex() { OClassName = "Transaction" }; vertex.SetField("Hash", transaction.GetHash().ToString()); vertex.SetField("BlockTime", blockTime); vertex.SetField("Coinbase", transaction.IsCoinBase); for (var i = 0; i < transaction.Inputs.Count; i++) { var input = transaction.Inputs[i]; vertex.SetField($"INPUT{i}", $"{input.PrevOut.Hash}:{input.PrevOut.N}"); } for (var i = 0; i < transaction.Outputs.Count; i++) { var output = transaction.Outputs[i]; vertex.SetField($"OUTPUT{i}", $"{i}:{GetAddress(output.ScriptPubKey)}:{output.Value.Satoshi}"); } tx.Add(vertex); } tx.Commit(); } catch (Exception e) { if (e.Message.Contains("ORecordDuplicatedException")) { return(true); // duplicate tx ids existed in the early days of bitcoin } else { tx.Reset(); return(false); } } } return(true); }
public void TestUpdateVertex() { using (TestDatabaseContext testContext = new TestDatabaseContext()) { ORID orid; using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { // prerequisites database .Create.Class("TestVertexClass") .Extends <OVertex>() .Run(); OVertex testVertex = new OVertex(); testVertex.OClassName = "TestVertexClass"; testVertex.SetField("foo", "foo string value"); testVertex.SetField("bar", 12345); Assert.AreEqual(null, testVertex.ORID); database.Transaction.Add(testVertex); Assert.IsNotNull(testVertex.ORID); Assert.IsTrue(testVertex.ORID.ClusterPosition < 0); Assert.AreEqual(-2, testVertex.ORID.ClusterPosition); database.Transaction.Commit(); orid = testVertex.ORID; } using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { OVertex v = database.Load.ORID(orid).Run().To <OVertex>(); v.SetField("foobar", "blah"); database.Transaction.Update(v); database.Transaction.Commit(); } using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { OVertex v = database.Load.ORID(orid).Run().To <OVertex>(); Assert.AreEqual("blah", v.GetField <string>("foobar")); } } }
public void ShouldCreateVertexFromOVertex() { using (TestDatabaseContext testContext = new TestDatabaseContext()) { using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { OVertex vertex = new OVertex(); vertex .SetField("foo", "foo string value") .SetField("bar", 12345); OVertex createdVertex = database .Create.Vertex(vertex) .Run(); Assert.IsTrue(createdVertex.ORID != null); Assert.AreEqual(createdVertex.OClassName, "V"); Assert.AreEqual(createdVertex.GetField <string>("foo"), vertex.GetField <string>("foo")); Assert.AreEqual(createdVertex.GetField <int>("bar"), vertex.GetField <int>("bar")); } } }
public void TestCreateVertex() { using (TestDatabaseContext testContext = new TestDatabaseContext()) { using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { // prerequisites database .Create.Class("TestVertexClass") .Extends <OVertex>() .Run(); OVertex testVertex = new OVertex(); testVertex.OClassName = "TestVertexClass"; testVertex.SetField("foo", "foo string value"); testVertex.SetField("bar", 12345); Assert.AreEqual(null, testVertex.ORID); database.Transaction.Add(testVertex); Assert.IsNotNull(testVertex.ORID); Assert.IsTrue(testVertex.ORID.ClusterPosition < 0); Assert.AreEqual(-2, testVertex.ORID.ClusterPosition); database.Transaction.Commit(); Assert.IsNotNull(testVertex.ORID); Assert.AreEqual(database.GetClusterIdFor("TestVertexClass"), testVertex.ORID.ClusterId); var createdVertex = database.Load.ORID(testVertex.ORID).Run().To <OVertex>(); Assert.IsTrue(createdVertex.ORID != null); Assert.AreEqual("TestVertexClass", createdVertex.OClassName); Assert.AreEqual("foo string value", createdVertex.GetField <string>("foo")); Assert.AreEqual(12345, createdVertex.GetField <int>("bar")); } using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias)) { OVertex testVertex = new OVertex(); testVertex.OClassName = "TestVertexClass"; testVertex.SetField("foo", "foo string value"); testVertex.SetField("bar", 12345); Assert.AreEqual(null, testVertex.ORID); database.Transaction.Add(testVertex); Assert.IsNotNull(testVertex.ORID); Assert.IsTrue(testVertex.ORID.ClusterPosition < 0); Assert.AreEqual(-2, testVertex.ORID.ClusterPosition); database.Transaction.Commit(); Assert.IsNotNull(testVertex.ORID); Assert.AreEqual(database.GetClusterIdFor("TestVertexClass"), testVertex.ORID.ClusterId); Assert.AreNotEqual(-2, testVertex.ORID.ClusterPosition); var createdVertex = database.Load.ORID(testVertex.ORID).Run().To <OVertex>(); Assert.IsTrue(createdVertex.ORID != null); Assert.AreEqual(createdVertex.OClassName, "TestVertexClass"); Assert.AreEqual(createdVertex.GetField <string>("foo"), "foo string value"); Assert.AreEqual(createdVertex.GetField <int>("bar"), 12345); } } }
static void Main(string[] args) { _server = new OServer(_hostname, _port, _rootUserName, _rootUserPassword); if (!_server.DatabaseExist(_DBname, OStorageType.PLocal)) { _server.CreateDatabase(_DBname, ODatabaseType.Graph, OStorageType.PLocal); Console.WriteLine("Database " + _DBname + " created"); //Connect to the DB OClient.CreateDatabasePool( _hostname, _port, _DBname, ODatabaseType.Graph, _username, _password, 10, _aliasDB ); Console.WriteLine("Connected to the DB " + _DBname); using (ODatabase database = new ODatabase(_aliasDB)) { //Classes and properties creation database .Create .Class("Users") .Extends <OVertex>() .Run(); database .Create .Property("userID", OType.Integer) .Class("users") .Run(); //Populate the DB OVertex vertexUser = new OVertex(); vertexUser.OClassName = "Users"; vertexUser .SetField("userID", 1); OVertex createVertexUser = database .Create.Vertex(vertexUser) .Run(); Console.WriteLine("Created vertex " + createVertexUser.OClassName + " with @rid " + createVertexUser.ORID + " and userID " + createVertexUser.GetField <int>("userID")); } } else { //Connection OClient.CreateDatabasePool( _hostname, _port, _DBname, ODatabaseType.Graph, _username, _password, 10, _aliasDB ); Console.WriteLine("Connected to the DB " + _DBname); using (ODatabase database = new ODatabase(_aliasDB)) { database .Update() .Class("Users") .Set("userID", 2) .Upsert() .Where("userID") .Equals(2) .Run(); Console.WriteLine("Operation executed"); } } }