예제 #1
0
        static void CreateDatabasePoolTest()
        {
            var serverConnInfo = Configuration.GetSection("ConnectionStrings:DefaultConnection").GetChildren().ToDictionary(x => x.Key);

            OClient.CreateDatabasePool(
                serverConnInfo["Server"].Value,
                int.Parse(serverConnInfo["Port"].Value),
                serverConnInfo["DefaultDB"].Value,
                ODatabaseType.Graph,
                serverConnInfo["Username"].Value,
                serverConnInfo["Password"].Value,
                10,
                "AppConnection"
                );

            using (var database = new ODatabase("AppConnection"))
            {
                var documents = database.Query("select from v");
                foreach (var item in documents)
                {
                    System.Console.WriteLine("Name: {0} Type: {1}",
                                             item.GetField <string>("name"), item.GetField <string>("type"));
                }
            }

            OClient.DropDatabasePool("AppConnection");
        }
예제 #2
0
        static void CreateDatabasePoolTest()
        {
            OClient.CreateDatabasePool(
                "localhost",
                2424,
                "GratefulDeadConcerts",
                ODatabaseType.Graph,
                "root",
                "root",
                10,
                "AppConnection"
                );

            using (var database = new ODatabase("AppConnection"))
            {
                var documents = database.Query("select from v");
                foreach (var item in documents)
                {
                    System.Console.WriteLine("Name: {0} Type: {1}",
                                             item.GetField <string>("name"), item.GetField <string>("type"));
                }
            }

            OClient.DropDatabasePool("AppConnection");
        }
        public override void Init(int flowCount, long flowRecordCount)
        {
            this.flowCount       = flowCount;
            this.flowRecordCount = flowRecordCount;

            databases = new ODatabase[flowCount];
            var connect = OClient.CreateDatabasePool(Server, Port, DatabaseTest, ODatabaseType.Document, Ussername, Password, flowCount, CollectionName);

            for (int i = 0; i < flowCount; i++)
            {
                ODatabase database = new ODatabase(CollectionName);
                databases[i] = database;
            }

            databases[0].Command("DROP CLASS Tick");
            databases[0].Command("CREATE Class Tick");
            databases[0].Command("CREATE PROPERTY Tick.Key long");
            databases[0].Command("CREATE PROPERTY Tick.Symbol string");
            databases[0].Command("CREATE PROPERTY Tick.Timestamp DATETIME");
            databases[0].Command("CREATE PROPERTY Tick.Bid double");
            databases[0].Command("CREATE PROPERTY Tick.Ask double");
            databases[0].Command("CREATE PROPERTY Tick.BidSize integer");
            databases[0].Command("CREATE PROPERTY Tick.AskSize integer");
            databases[0].Command("CREATE PROPERTY Tick.Provider string");
            databases[0].Command("CREATE INDEX Tick.Key Dictionary");
        }
예제 #4
0
        public void ShouldReturnDatabaseToPoolAfterCloseAndDisposeCall()
        {
            using (TestDatabaseContext testContext = new TestDatabaseContext())
            {
                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );

                ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias);

                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize - 1,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );

                database.Close();

                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );

                database.Dispose();

                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );
            }
        }
        public override void Finish()
        {
            OClient.DropDatabasePool(CollectionName);

            foreach (var database in databases)
            {
                database.Close();
            }
        }
예제 #6
0
 private MovieManager()
 {
     tClient       = new TClient();
     imdbClient    = new ImdbClient();
     oClient       = new OClient();
     tmdbApiKey    = tClient.Key;
     youTubeClient = new YouTubeService(new BaseClientService.Initializer()
     {
         ApiKey          = "AIzaSyDFaNumZ4ZE3hDY-yDQi9VY_WDEYrS3xvo",
         ApplicationName = "Google Play Android Developer"
     });
 }
예제 #7
0
 public OrientDB()
 {
     OClient.CreateDatabasePool(
         "localhost",
         2424,
         "VK",
         ODatabaseType.Graph,
         "root",
         "admin",
         100,
         databaseAlias
         );
 }
예제 #8
0
 public static void CreatePool()
 {
     OClient.CreateDatabasePool(
         _hostName,
         _port,
         DatabaseName,
         DatabaseType,
         _username,
         _pass,
         DatabasePoolSize,
         DatabaseAlias
         );
 }
예제 #9
0
 public static void CreateTestPool()
 {
     OClient.CreateDatabasePool(
         _hostname,
         _port,
         GlobalTestDatabaseName,
         GlobalTestDatabaseType,
         _username,
         _password,
         GlobalTestDatabasePoolSize,
         GlobalTestDatabaseAlias
         );
 }
예제 #10
0
 public void CreateTestPool()
 {
     OClient.CreateDatabasePool(
         HOSTNAME,
         PORT,
         GLOBAL_TEST_DATABASE_NAME,
         GlobalTestDatabaseType,
         USERNAME,
         PASSWORD,
         GlobalTestDatabasePoolSize,
         GLOBAL_TEST_DATABASE_ALIAS
         );
 }
예제 #11
0
        static void Main(string[] args)
        {
            _server = new OServer(_hostname, _port, _rootUserName, _rootUserPassword);

            //If the DB already exists I delete it
            if (_server.DatabaseExist(_DBname, OStorageType.PLocal))
            {
                _server.DropDatabase("TestDatabaseName", OStorageType.PLocal);
                Console.WriteLine("Database " + _DBname + " deleted");
            }
            //Creating the new DB
            _server.CreateDatabase(_DBname, ODatabaseType.Graph, OStorageType.PLocal);
            Console.WriteLine("Database " + _DBname + " created");
            //Connect to the DB and populate it
            OClient.CreateDatabasePool(
                "127.0.0.1",
                2424,
                _DBname,
                ODatabaseType.Graph,
                _username,
                _password,
                10,
                "myTestDatabaseAlias"
                );
            Console.WriteLine("Connected to the DB " + _DBname);
            using (ODatabase database = new ODatabase("myTestDatabaseAlias"))
            {
                database
                .Create.Class("TestClass")
                .Extends <OVertex>()
                .Run();
                OVertex createdVertex = database
                                        .Create.Vertex("TestClass")
                                        .Set("name", "LucaS")
                                        .Run();
                Console.WriteLine("Created vertex with @rid " + createdVertex.ORID);
            }
        }
예제 #12
0
        public void ShouldRetrieveAndReturnDatabaseFromPool()
        {
            using (TestDatabaseContext testContext = new TestDatabaseContext())
            {
                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );

                using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias))
                {
                    Assert.AreEqual(
                        TestConnection.GlobalTestDatabasePoolSize - 1,
                        OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                        );
                }

                Assert.AreEqual(
                    TestConnection.GlobalTestDatabasePoolSize,
                    OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias)
                    );
            }
        }
예제 #13
0
        static void CreateDatabaseTestManualy()
        {
            var serverConnInfo = Configuration.GetSection("ConnectionStrings:DefaultConnection").GetChildren().ToDictionary(x => x.Key);

            using (var server = new OServer(serverConnInfo["Server"].Value, int.Parse(serverConnInfo["Port"].Value), serverConnInfo["Username"].Value, serverConnInfo["Password"].Value))
            {
                var created = false;
                try
                {
                    var exists = server.DatabaseExist("TestManualy", OStorageType.PLocal);
                    if (exists)
                    {
                        server.DropDatabase("TestManualy", OStorageType.PLocal);
                    }

                    created = server.CreateDatabase("TestManualy", ODatabaseType.Document, OStorageType.PLocal);

                    if (!created)
                    {
                        throw new Exception("Database not created");
                    }

                    exists = server.DatabaseExist("TestManualy", OStorageType.PLocal);

                    if (!exists)
                    {
                        throw new Exception("Database not exists");
                    }

                    System.Console.WriteLine("Database created - get server configuration");

                    var config = server.ConfigList();
                    foreach (var item in config)
                    {
                        System.Console.WriteLine("{0} : {1}",
                                                 item.Key, item.Value);
                    }

                    System.Console.WriteLine("try connect to the database and query");

                    OClient.CreateDatabasePool(
                        serverConnInfo["Server"].Value,
                        int.Parse(serverConnInfo["Port"].Value),
                        "TestManualy",
                        ODatabaseType.Graph,
                        serverConnInfo["Username"].Value,
                        serverConnInfo["Password"].Value,
                        10,
                        "AppConnection"
                        );
                    using (var database = new ODatabase("AppConnection"))
                    {
                        var documents = database.Query("select from OUser");
                        foreach (var item in documents)
                        {
                            System.Console.WriteLine("Name: {0} Status: {1}",
                                                     item.GetField <string>("name"), item.GetField <string>("status"));
                        }
                    }
                    OClient.DropDatabasePool("AppConnection");
                }
                finally
                {
                    if (created)
                    {
                        server.DropDatabase("TestManualy", OStorageType.PLocal);
                    }
                }
            }
        }
        //public  int IntParseFast(string value)
        //{
        //    int result = 0;
        //    for (int i = 0; i < value.Length; i++)
        //    {
        //        char letter = value[i];
        //        result = 10 * result + (letter - 48);
        //    }
        //    return result;
        //}

        /// <summary>
        /// Parse RidBags ex. %[content:binary]; where [content:binary] is the actual binary base64 content.
        /// </summary>
        /// <param name="i"></param>
        /// <param name="recordString"></param>
        /// <param name="document"></param>
        /// <param name="fieldName"></param>
        /// <returns></returns>
        private int ParseRidBags(int i, string recordString, ODocument document, string fieldName)
        {
            //move to first base64 char
            i++;

            StringBuilder builder = new StringBuilder();

            while (recordString[i] != ';')
            {
                builder.Append(recordString[i]);
                i++;
            }

            // use a list as it preserves order at this stage which may be important when using ordered edges
            var rids = new List <ORID>();

            var value = Convert.FromBase64String(builder.ToString());

            using (var stream = new MemoryStream(value))
                using (var reader = new BinaryReader(stream))
                {
                    var first  = reader.ReadByte();
                    int offset = 1;
                    if ((first & 2) == 2)
                    {
                        // uuid parsing is not implemented
                        offset += 16;
                    }

                    if ((first & 1) == 1) // 1 - embedded,0 - tree-based
                    {
                        var entriesSize = reader.ReadInt32EndianAware();
                        for (int j = 0; j < entriesSize; j++)
                        {
                            var clusterid       = reader.ReadInt16EndianAware();
                            var clusterposition = reader.ReadInt64EndianAware();
                            rids.Add(new ORID(clusterid, clusterposition));
                        }
                    }
                    else
                    {
                        // Maybe not parse this type of Field and only then Requested retrieve ?
                        // Lazy loading

                        if (_connection == null || !_connection.IsActive)
                        {
                            throw new OException(OExceptionType.Connection, "Connection is not opened or is null");
                        }

                        // Tree based RidBag - (collectionPointer)(size:int)(changes)

                        // Collection Pointer - (fileId:long)(pageIndex:long)(pageOffset:int)
                        var fileId     = reader.ReadInt64EndianAware();
                        var pageIndex  = reader.ReadInt64EndianAware();
                        var pageOffset = reader.ReadInt32EndianAware();

                        // size
                        var size = reader.ReadInt32EndianAware();

                        //only process ridbag if size > 0, otherwise the call to SBTreeBonsaiFirstKey operation makes the connection crash (the server probably isn't expecting this use case)
                        if (size > 0)
                        {
                            // Changes - (changesSize:int)[(link:rid)(changeType:byte)(value:int)]*
                            var changesSize = reader.ReadInt32EndianAware();
                            for (int j = 0; j < changesSize; j++)
                            {
                                throw new NotImplementedException("RidBag Changes not yet implemented");
                            }

                            var operation = new SBTreeBonsaiFirstKey(null);
                            operation.FileId     = fileId;
                            operation.PageIndex  = pageIndex;
                            operation.PageOffset = pageOffset;


                            // Not realy quiete about this
                            var connection = OClient.ReleaseConnection(_connection.Alias);

                            var entries = new Dictionary <ORID, int>();
                            try
                            {
                                var orid = connection.ExecuteOperation(operation);
                                var ft   = true;
                                var key  = orid.GetField <ORID>("rid");
                                do
                                {
                                    var op = new SBTreeBonsaiGetEntriesMajor(null);
                                    op.FileId     = fileId;
                                    op.PageIndex  = pageIndex;
                                    op.PageOffset = pageOffset;
                                    op.FirstKey   = key;
                                    op.Inclusive  = ft;

                                    var res = connection.ExecuteOperation(op);
                                    entries = res.GetField <Dictionary <ORID, int> >("entries");

                                    rids.AddRange(entries.Keys);

                                    if (entries.Count == 0)
                                    {
                                        break;
                                    }

                                    key = entries.Last().Key;
                                    ft  = false;
                                } while (true);
                            }
                            finally
                            {
                                OClient.ReturnConnection(connection);
                            }
                        }
                    }
                }

            document[fieldName] = rids;
            //move past ';'
            i++;

            return(i);
        }
예제 #15
0
 public void DropTestPool()
 {
     OClient.DropDatabasePool(GLOBAL_TEST_DATABASE_ALIAS);
 }
예제 #16
0
        static void CreateDatabaseTestManualy()
        {
            using (var server = new OServer("127.0.0.1", 2424, "root", "root"))
            {
                var created = false;
                try
                {
                    created = server.CreateDatabase("TestManualy", ODatabaseType.Document, OStorageType.PLocal);

                    if (!created)
                    {
                        throw new Exception("Database not created");
                    }

                    var exists = server.DatabaseExist("TestManualy", OStorageType.PLocal);

                    if (!exists)
                    {
                        throw new Exception("Database not exists");
                    }

                    System.Console.WriteLine("Database created - get server configuration");

                    var config = server.ConfigList();
                    foreach (var item in config)
                    {
                        System.Console.WriteLine("{0} : {1}",
                                                 item.Key, item.Value);
                    }

                    System.Console.WriteLine("try connect to the database and query");

                    OClient.CreateDatabasePool(
                        "localhost",
                        2424,
                        "TestManualy",
                        ODatabaseType.Graph,
                        "root",
                        "root",
                        10,
                        "AppConnection"
                        );
                    using (var database = new ODatabase("AppConnection"))
                    {
                        var documents = database.Query("select from OUser");
                        foreach (var item in documents)
                        {
                            System.Console.WriteLine("Name: {0} Status: {1}",
                                                     item.GetField <string>("name"), item.GetField <string>("status"));
                        }
                    }
                    OClient.DropDatabasePool("AppConnection");
                }
                finally
                {
                    if (created)
                    {
                        server.DropDatabase("TestManualy", OStorageType.PLocal);
                    }
                }
            }
        }
예제 #17
0
        static void ConnectionPoolTest()
        {
            using (TestDatabaseContext testContext = new TestDatabaseContext())
            {
                using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias))
                {
                    database
                    .Create.Class("Person")
                    .Extends <OVertex>()
                    .Run();

                    database
                    .Create.Class("Spouse")
                    .Extends <OVertex>()
                    .Run();

                    ODocument person1 = database
                                        .Create.Vertex("Person")
                                        .Set("Name", "Johny")
                                        .Run();

                    ODocument spouse1 = database
                                        .Create.Vertex("Spouse")
                                        .Set("Name", "Mary")
                                        .Run();

                    ODocument spouse2 = database
                                        .Create.Vertex("Spouse")
                                        .Set("Name", "Julia")
                                        .Run();

                    // TODO: check what happens in command execution
                    ODocument edge1 = database
                                      .Create.Edge <OEdge>()
                                      .From(person1)
                                      .To(spouse1)
                                      .Run();

                    ODocument edge2 = database
                                      .Create.Edge <OEdge>()
                                      .From(person1)
                                      .To(spouse2)
                                      .Run();

                    List <ODocument> docs = database.Query("select from Person");
                }

                bool exit = false;

                using (ODatabase database = new ODatabase(TestConnection.GlobalTestDatabaseAlias))
                {
                    database
                    .Create.Class("TestClass")
                    .Extends <OVertex>()
                    .Run();

                    database
                    .Create.Vertex("TestClass")
                    .Set("foo", "foo string value 1")
                    .Set("bar", 123)
                    .Run();

                    database
                    .Create.Vertex("TestClass")
                    .Set("foo", "foo string value 2")
                    .Set("bar", 1233)
                    .Run();
                }

                while (!exit)
                {
                    System.Console.WriteLine(
                        "Current pool size: {0} @ {1} : {2}",
                        OClient.DatabasePoolCurrentSize(TestConnection.GlobalTestDatabaseAlias),
                        DateTime.Now.ToString(),
                        Query().Count
                        );

                    string line = System.Console.ReadLine();

                    if (line.Equals("exit"))
                    {
                        exit = true;
                    }
                }
            }
        }
예제 #18
0
 public static void DropTestPool()
 {
     OClient.DropDatabasePool(GlobalTestDatabaseAlias);
 }
예제 #19
0
 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");
         }
     }
 }
예제 #20
0
 public void SendMessage(OClient msgType, string msg, Socket client) => Handler.Server.Send(client, BytesCompress.CompressPacket(BytesTransformation.TransformIt((int)msgType, msg), "OPacket"));