Exemple #1
0
        private void ReadAllPosts()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                String kluc = "";
                String red  = "";

                foreach (var row in db.ExecuteQuery("SELECT * FROM razgovor"))//dolzina='" + tbDolzina.Text + "'"))
                {
                    if (kluc == "")
                    {
                        kluc = row.Columns[1].ToString();
                    }

                    if (kluc == row.Columns[1].ToString())
                    {
                        red += row.Columns[2].ColumnValue + ":" + row.Columns[3].ColumnValue + "; ";
                    }
                    else
                    {
                        listBox1.Items.Add(red);
                        kluc = row.Columns[1].ToString();
                        red  = row.Columns[2].ColumnValue + " " + row.Columns[3].ColumnValue + "; ";
                    }
                }
                listBox1.Items.Add(red);

                foreach (var row2 in db.ExecuteQuery("SELECT * FROM poraka WHERE naslov='test 2 naslov'"))
                {
                    listBox1.Items.Add(row2.Columns[0].ColumnValue + "; " + row2.Columns[1].ColumnValue);
                }
            }
        }
Exemple #2
0
        private static void BigDecimalTest()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {

                // arrange
                db.ExecuteNonQuery("CREATE TABLE OfferReservation2 (KEY text PRIMARY KEY) WITH comparator = text AND default_validation = decimal");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key0', 1000000000000000000)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key1', 0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key2', 2000000000000.1234)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key3', -0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key4', -0.25122333)");

                var actual = db.ExecuteQuery("SELECT * FROM OfferReservation2");

                var results = actual.ToList();

                var firstValue = (decimal)results.First(x => x.Key == "Key0")["MyColumn"];
                var secondValue = (decimal)results.First(x => x.Key == "Key1")["MyColumn"];
                var thirdValue = (decimal)results.First(x => x.Key == "Key2")["MyColumn"];
                var fourthValue = (decimal)results.First(x => x.Key == "Key3")["MyColumn"];
                var fifthValue = (decimal)results.First(x => x.Key == "Key4")["MyColumn"];

                ConsoleHeader("Returned data from Big Decimal Test");
                ConsoleHeader(firstValue.ToString());
                ConsoleHeader(secondValue.ToString());
                ConsoleHeader(thirdValue.ToString());
                ConsoleHeader(fourthValue.ToString());
                ConsoleHeader(fifthValue.ToString());
            }
        }
Exemple #3
0
        private static void BigDecimalTest()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                // arrange
                db.ExecuteNonQuery("CREATE TABLE OfferReservation2 (KEY text PRIMARY KEY) WITH comparator = text AND default_validation = decimal");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key0', 1000000000000000000)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key1', 0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key2', 2000000000000.1234)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key3', -0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation2 (KEY, 'MyColumn') VALUES ('Key4', -0.25122333)");

                var actual = db.ExecuteQuery("SELECT * FROM OfferReservation2");

                var results = actual.ToList();


                var firstValue  = (decimal)results.First(x => x.Key == "Key0")["MyColumn"];
                var secondValue = (decimal)results.First(x => x.Key == "Key1")["MyColumn"];
                var thirdValue  = (decimal)results.First(x => x.Key == "Key2")["MyColumn"];
                var fourthValue = (decimal)results.First(x => x.Key == "Key3")["MyColumn"];
                var fifthValue  = (decimal)results.First(x => x.Key == "Key4")["MyColumn"];

                ConsoleHeader("Returned data from Big Decimal Test");
                ConsoleHeader(firstValue.ToString());
                ConsoleHeader(secondValue.ToString());
                ConsoleHeader(thirdValue.ToString());
                ConsoleHeader(fourthValue.ToString());
                ConsoleHeader(fifthValue.ToString());
            }
        }
        private void FillCombo(String pSQL, ComboBox Control, String DisplayMember)
        {
            DataTable dt = new DataTable();

            dt.TableName = DisplayMember;
            dt.Columns.Add(DisplayMember);

            try
            {
                using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
                {
                    foreach (var row in db.ExecuteQuery(pSQL))
                    {
                        DataRow dr = dt.NewRow();
                        dr[0] = row.Columns[0].ColumnValue;

                        dt.Rows.Add(dr);
                    }
                }
            }

            catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }

            DataSet MyDS = new DataSet();

            MyDS.Tables.Add(dt);
            Control.DataSource    = MyDS.Tables[0].DefaultView;
            Control.DisplayMember = DisplayMember;
        }
Exemple #5
0
        private static void CreateColumnFamilyWithTimestampOperator()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {

                db.ExecuteNonQuery("CREATE TABLE TestCF2 (KEY text PRIMARY KEY) WITH comparator=timestamp AND default_validation=text;");

                DateTimeOffset UnixStart = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
                DateTimeOffset TimeNow = DateTimeOffset.UtcNow;

                var columnName2 = Convert.ToInt64(Math.Floor((TimeNow - UnixStart).TotalMilliseconds));
                var columnName1 = columnName2 + 5000;

                db.ExecuteNonQuery(string.Format("INSERT INTO TestCF2 (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2));

                List<ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF2 WHERE KEY = 'Key1'").ToList();

                DateTime value1 = rows[0].Columns[1].ColumnName.GetValue<DateTime>();
                DateTime value2 = rows[0].Columns[2].ColumnName.GetValue<DateTime>();

                ConsoleHeader("Returned data from db for timestamp comparator");
                ConsoleHeader(value1.ToString());
                ConsoleHeader(value2.ToString());

            }
        }
Exemple #6
0
        public static CassandraJob GetJob(CassandraContext db, int hide_time_sec)
        {
loop:
            dynamic job = null;

            for (int i = 0; i < 1000; i++)
            {
                var jobs = db.ExecuteQuery(SelectCQL_Main(1000)).ToArray();
                var mx   = jobs.Length < 1000 ? jobs.Length - 1 : 1000;
                if (mx == -1)
                {
                    break;
                }
                job = jobs[rnd.Value.Next(mx)];
                if (job["hidden_till"] < ToUnixTime(DateTimeOffset.UtcNow))
                {
                    break;
                }
            }
            if (job != null)
            {
                var myID = Guid.NewGuid();
                var ret  = new CassandraJob(job, myID);
                db.ExecuteNonQuery(HideRowCQL_Trans(ret.GetID(), ret.GetAckID()));
                var cnt     = db.ExecuteQuery(SelectCQL_Trans(ret.GetID(), 1000)).ToArray();
                var counter = cnt.First()["count"];
                if (counter > 1)
                {
                    db.ExecuteNonQuery(DeleteRowCQL_Trans(ret.GetID()));
                    goto loop;
                }
                if (counter == 0)
                {
                    goto loop;
                }

                db.ExecuteNonQuery(HideRowCQL_Main2(ret.GetID(), hide_time_sec, ret.GetLogic(), ret.GetCommand()));

                return(ret);
            }
            else
            {
                return(null);
            }
        }
Exemple #7
0
        private static void TombstoneTest()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY int PRIMARY KEY) WITH comparator = text AND default_validation = float");
                db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:100') VALUES (5, 0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:101') VALUES (5, 0.25)");
                db.ExecuteNonQuery("DELETE '25:100' FROM OfferReservation WHERE KEY = 5");

                List <ICqlRow> rows = db.ExecuteQuery("SELECT '25:100' FROM OfferReservation WHERE KEY = 5").ToList();
            }
        }
Exemple #8
0
        public void With_Compression()
        {
            // arrange
            var insertQuery = @"INSERT INTO Users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)";

            // act
            _db.ExecuteNonQuery(insertQuery);
            var actual = _db.ExecuteQuery("SELECT * FROM Users");

            // assert
            Assert.Equal(6, actual.Count());
        }
        public void TestReadingCql3List()
        {
            //arrange
            var insertQuery = @"INSERT INTO Cql3List (Id, TagList) VALUES(1, ['item1','item2']);";

            //act
            _db.ExecuteNonQuery(insertQuery);
            var results = _db.ExecuteQuery("SELECT * FROM Cql3List").ToList();

            //assert
            Assert.Equal(1, results.Count());
            Assert.Equal(2, results.First().Columns.Count);

            var row     = (FluentCqlRow)results.First();
            var id      = row.GetColumn("id").ColumnValue.GetValue <int>();
            var taglist = row.GetColumn("taglist").ColumnValue.GetValue <List <string> >();

            Assert.Equal(1, id);
            Assert.Equal(2, taglist.Count);
            Assert.Equal("item1", taglist[0]);
            Assert.Equal("item2", taglist[1]);
        }
Exemple #10
0
        private void Common(CompatibilityCassandraDatabaseSetup setup)
        {
            _db = setup.DB;

            // arrange
            var insertQuery = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)";

            // act
            _db.ExecuteNonQuery(insertQuery);
            var actual = _db.ExecuteQuery("SELECT * FROM users");

            // assert
            Assert.Equal(6, actual.Count());
        }
Exemple #11
0
        public void TestOverwritingOfUsersOnPrimaryKeys()
        {
            // arrange
            var insertQuery  = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('X', 200) + "', '*****@*****.**', 43)";
            var insertQuery2 = @"INSERT INTO users (Id, Name, Email, Age) VALUES (23, '" + new String('Y', 200) + "', '*****@*****.**', 53)";

            // act
            _db.ExecuteNonQuery(insertQuery);
            _db.ExecuteNonQuery(insertQuery2);
            var actual = _db.ExecuteQuery("SELECT * FROM users");

            // assert
            Assert.Equal(6, actual.Count());
        }
        public void Test_Cql3()
        {
            var connBuilder = _db.ConnectionBuilder;

            connBuilder = new ConnectionBuilder(connBuilder.Keyspace, connBuilder.Servers[0], cqlVersion: CqlVersion.Cql3);
            var db = new CassandraContext(connBuilder);

            // arrange
            db.TryExecuteNonQuery("DROP TABLE Timeline_Issue36");

            db.ExecuteNonQuery(@"
CREATE TABLE Timeline_Issue36 (
	user_id varchar,
	tweet_id int,
	author text,
	body varchar,
	PRIMARY KEY (user_id, tweet_id));"    );

            db.ExecuteNonQuery(@"
BEGIN BATCH
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 1, 'nberardi', 'test 1234')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 2, 'nberardi', 'test 4567')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('nberardi', 3, 'nberardi', 'test 8910')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jdoe', 1, 'nberardi', 'test 1111')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('akim', 1, 'nberardi', 'test 2222')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jboes', 1, 'nberardi', 'test 3333')
	INSERT INTO Timeline_Issue36 (user_id, tweet_id, author, body) VALUES ('jboes', 2, 'nberardi', 'test 4444')
APPLY BATCH;
");

            // act
            var actual = db.ExecuteQuery("SELECT * FROM Timeline_Issue36");

            // assert
            var results = actual.ToList();

            Assert.Equal(7, results.Count);

            var row = results.FirstOrDefault();

            Assert.Equal(4, row.Columns.Count);
        }
        public void Test()
        {
            // arrange
            _db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY text PRIMARY KEY) WITH comparator = text AND default_validation = decimal");
            _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key0', 1000000000000000000)");
            _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key1', 0.25)");
            _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key2', 2000000000000.1234)");
            _db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, 'MyColumn') VALUES ('Key3', -0.25)");

            // act
            var actual = _db.ExecuteQuery("SELECT * FROM OfferReservation");

            // assert
            var results = actual.ToList();

            Assert.Equal(1000000000000000000M, (decimal)results.First(x => x.Key == "Key0")["MyColumn"]);
            Assert.Equal(.25M, (decimal)results.First(x => x.Key == "Key1")["MyColumn"]);
            Assert.Equal(2000000000000.1234M, (decimal)results.First(x => x.Key == "Key2")["MyColumn"]);
            Assert.Equal(-.25M, (decimal)results.First(x => x.Key == "Key3")["MyColumn"]);
        }
Exemple #14
0
        private static void CreateColumnFamilyWithUUIDOperator()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                db.ExecuteNonQuery("CREATE TABLE TestCF (KEY text PRIMARY KEY) WITH comparator=uuid AND default_validation=text;");

                Guid columnName1 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now);

                Guid columnName2 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now);

                db.ExecuteNonQuery(string.Format("INSERT INTO TestCF (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2));

                List <ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF WHERE KEY = 'Key1'").ToList();

                Guid value = rows[0].Columns[1].ColumnName.GetValue <Guid>();

                ConsoleHeader("Returned data from db");
                ConsoleHeader(value.ToString());
            }
        }
        public void Init()
        {
            _context = new CassandraContext(keyspace: DummiesKeySpace, host: "localhost");
            if (!_context.KeyspaceExists(DummiesKeySpace))
            {
                var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema
                {
                    Name = DummiesKeySpace,
                }, _context);
                keyspace.TryCreateSelf();
                _context.ExecuteQuery(
                    @"
                CREATE COLUMNFAMILY Dummies (
                KEY ascii PRIMARY KEY,
                Blob blob
                );");
                _context.SaveChanges();
            }

            _dummies = _context.GetColumnFamily("Dummies");
        }
        public void Init()
        {
            _context = new CassandraContext(keyspace: DummiesKeySpace, host: "localhost");
            if (!_context.KeyspaceExists(DummiesKeySpace))
            {
                var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema
                {
                    Name = DummiesKeySpace,
                }, _context);
                keyspace.TryCreateSelf();
                _context.ExecuteQuery(
                    @"
                CREATE COLUMNFAMILY Dummies (
	            KEY ascii PRIMARY KEY,
	            Blob blob
                );");
                _context.SaveChanges();
            }

            _dummies = _context.GetColumnFamily("Dummies");
        }
Exemple #17
0
        private static void ReadAllPosts()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                var key = "first-blog-post";

                var tagsFamily = db.GetColumnFamily("Tags");

                // get the post back from the database
                ConsoleHeader("getting 'first-blog-post'");

                // query using CQL
                var posts = db.ExecuteQuery("SELECT * FROM Posts LIMIT 25");

                // query using API
                dynamic tags = tagsFamily.Get(key).FirstOrDefault();

                // show details
                ConsoleHeader("showing post");
                foreach (dynamic post in posts)
                {
                    Console.WriteLine(
                        String.Format("=={0} by {1}==\n{2}",
                                      post.Title,
                                      post.Author,
                                      post.Body
                                      ));
                }

                // show tags
                ConsoleHeader("showing tags");
                foreach (var tag in tags)
                {
                    Console.WriteLine(String.Format("{0}:{1}", tag.ColumnName, tag.ColumnValue));
                }
            }
        }
Exemple #18
0
        private static void CreateColumnFamilyWithTimestampOperator()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                db.ExecuteNonQuery("CREATE TABLE TestCF2 (KEY text PRIMARY KEY) WITH comparator=timestamp AND default_validation=text;");

                DateTimeOffset UnixStart = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
                DateTimeOffset TimeNow   = DateTimeOffset.UtcNow;

                var columnName2 = Convert.ToInt64(Math.Floor((TimeNow - UnixStart).TotalMilliseconds));
                var columnName1 = columnName2 + 5000;

                db.ExecuteNonQuery(string.Format("INSERT INTO TestCF2 (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2));

                List <ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF2 WHERE KEY = 'Key1'").ToList();

                DateTime value1 = rows[0].Columns[1].ColumnName.GetValue <DateTime>();
                DateTime value2 = rows[0].Columns[2].ColumnName.GetValue <DateTime>();

                ConsoleHeader("Returned data from db for timestamp comparator");
                ConsoleHeader(value1.ToString());
                ConsoleHeader(value2.ToString());
            }
        }
        public void Test_Cql2()
        {
            var connBuilder = _db.ConnectionBuilder;

            connBuilder = new ConnectionBuilder(connBuilder.Keyspace, connBuilder.Servers[0], cqlVersion: CqlVersion.Cql2);
            var db = new CassandraContext(connBuilder);

            // arrange
            db.TryExecuteNonQuery("DROP COLUMNFAMILY Users_Issue36");

            db.ExecuteNonQuery(@"
CREATE COLUMNFAMILY Users_Issue36 (
	UserName text PRIMARY KEY, 
	LastLogin timestamp);"    );

            db.ExecuteNonQuery(@"
BEGIN BATCH
	INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('nberardi', '2012-6-6T04:30:00')
	INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('jdoe', '2012-10-31T00:30:02')
	INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('akim', '2003-6-6T05:35:23')
	INSERT INTO Users_Issue36 (UserName, LastLogin) VALUES ('jboes', '2001-1-1T13:02:10')
APPLY BATCH;
");

            // act
            var actual = db.ExecuteQuery("SELECT * FROM Users_Issue36");

            // assert
            var results = actual.ToList();

            Assert.Equal(4, results.Count);

            var row = results.FirstOrDefault();

            Assert.Equal(2, row.Columns.Count);
        }
Exemple #20
0
        private static void TombstoneTest()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {

                db.ExecuteNonQuery("CREATE TABLE OfferReservation (KEY int PRIMARY KEY) WITH comparator = text AND default_validation = float");
                db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:100') VALUES (5, 0.25)");
                db.ExecuteNonQuery("INSERT INTO OfferReservation (KEY, '25:101') VALUES (5, 0.25)");
                db.ExecuteNonQuery("DELETE '25:100' FROM OfferReservation WHERE KEY = 5");

                List<ICqlRow> rows = db.ExecuteQuery("SELECT '25:100' FROM OfferReservation WHERE KEY = 5").ToList();

            }
        }
        private void ExecuteSearch()
        {
            PleaseWait frmPW = new PleaseWait();

            frmPW.Show();
            Application.DoEvents();

            MyDs.Tables.Clear();
            outlookGrid1.Rows.Clear();
            DataTable dt = new DataTable();

            lblNoRows.Text       = "";
            lblSumAmount.Text    = "";
            lblSumAmountVat.Text = "";

            dt.TableName = "Phonebook";
            dt.Columns.Add("First Name");
            dt.Columns.Add("Last Name");
            dt.Columns.Add("Phone number");
            dt.Columns.Add("Phone type");

            String CQL = "SELECT name, surname, number, phone_type FROM phonebook";

            String WherePart = FillWherePart();

            CQL += WherePart;

            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                foreach (var row2 in db.ExecuteQuery(CQL))
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = row2.Columns[0].ColumnValue;
                    dr[1] = row2.Columns[1].ColumnValue;
                    dr[2] = row2.Columns[2].ColumnValue;
                    dr[3] = row2.Columns[3].ColumnValue;

                    dt.Rows.Add(dr);
                }
            }

            MyDs.Tables.Add(dt);

            if (MyDs.Tables[0].Rows.Count > 0)
            {
                outlookGrid1.BindData(MyDs, MyDs.Tables[0].TableName);

                outlookGrid1.AllowUserToResizeColumns = true;

                outlookGrid1.Columns[0].Width = 200;
                outlookGrid1.Columns[1].Width = 200;
                outlookGrid1.Columns[2].Width = 120;
                outlookGrid1.Columns[3].Width = 120;

                //Decimal amount = 0;
                //Decimal amount_vat = 0;

                //for (int i = 0; i < MyDs.Tables[0].Rows.Count; i++)
                //{
                //    amount += Convert.ToDecimal(MyDs.Tables[0].Rows[i][5].ToString());
                //    amount_vat += Convert.ToDecimal(MyDs.Tables[0].Rows[i][6].ToString());
                //}

                //lblNoRows.Text = "Number of rows: " + MyDs.Tables[0].Rows.Count;
                //lblSumAmount.Text = "Sum of Amount: " + amount.ToString();
                //lblSumAmountVat.Text = "Sum of Amount with VAT: " + amount_vat.ToString();
            }
            frmPW.Close();
        }
        public static CassandraJob GetJob(CassandraContext db, int hide_time_sec)
        {
            loop:
            dynamic job = null;
            for (int i = 0; i < 1000; i++)
            {
                var jobs = db.ExecuteQuery(SelectCQL_Main(1000)).ToArray();
                var mx = jobs.Length < 1000 ? jobs.Length - 1 : 1000;
                if (mx == -1)
                    break;
                job = jobs[rnd.Value.Next(mx)];
                if (job["hidden_till"] < ToUnixTime(DateTimeOffset.UtcNow))
                    break;
            }
            if (job != null)
            {
                var myID = Guid.NewGuid();
                var ret = new CassandraJob(job, myID);
                db.ExecuteNonQuery(HideRowCQL_Trans(ret.GetID(), ret.GetAckID()));
                var cnt = db.ExecuteQuery(SelectCQL_Trans(ret.GetID(), 1000)).ToArray();
                var counter = cnt.First()["count"];
                if (counter > 1)
                {
                    db.ExecuteNonQuery(DeleteRowCQL_Trans(ret.GetID()));
                    goto loop;
                }
                if (counter == 0)
                    goto loop;

                db.ExecuteNonQuery(HideRowCQL_Main2(ret.GetID(), hide_time_sec,ret.GetLogic(),ret.GetCommand()));

                return ret;
            }
            else
                return null;
        }
Exemple #23
0
        public static void Test()
        {
            int TestTimeInMinutes = 10;

            int  ThreadCount  = 50;
            int  ThreadCount2 = 10;
            int  TimeOut_Sec  = 5;
            bool usePooling   = true;

            object        alive_monitor   = new object();
            bool          alive_condition = true;
            List <Thread> threads         = new List <Thread>();

            int    thrStarted_cnt     = 0;
            object thrStarted_monitor = new object();

            //initialize
            CassandraContext main_db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));

            {
                if (main_db.KeyspaceExists(KeyspaceName))
                {
                    main_db.DropKeyspace(KeyspaceName);
                }

                var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema
                {
                    Name = KeyspaceName,
                }, main_db);

                keyspace.TryCreateSelf();

                CreateTablesIfNotExists(main_db);
            }

            for (int tI = 0; tI < ThreadCount; tI++)
            {
                int thrNo = tI;
                var thr   = new Thread(() =>
                {
                    Console.Write("(*" + thrNo + ")");
                    try
                    {
                        CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));
                        lock (thrStarted_monitor)
                        {
                            thrStarted_cnt++;
                            Monitor.PulseAll(thrStarted_monitor);
                        }

                        while (true)
                        {
                            var job = GetJob(db, 10);
                            if (job != null)
                            {
                                Console.Write("-");
                                if (job.GetLogic() == null || job.GetCommand() == null)
                                {
                                    Console.WriteLine("Error");
                                }
                                DeleteJob(db, job);
                            }
                            else
                            {
                                lock (alive_monitor)
                                {
                                    if (!alive_condition)
                                    {
                                        return;
                                    }
                                    else
                                    {
                                        Monitor.Wait(alive_monitor, TimeOut_Sec * 1000);
                                    }
                                }
                            }
                        }
                    }
                    finally
                    {
                        Console.Write("(~" + thrNo + ")");
                    }
                });
                threads.Add(thr);
                thr.Start();
            }

            for (int tI = 0; tI < ThreadCount2; tI++)
            {
                int thrNo = tI;
                var thr   = new Thread(() =>
                {
                    Console.Write("<*" + thrNo + ">");
                    try
                    {
                        CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));
                        lock (thrStarted_monitor)
                        {
                            thrStarted_cnt++;
                            Monitor.PulseAll(thrStarted_monitor);
                        }

                        while (true)
                        {
                            StringBuilder sb = new StringBuilder();
                            for (int i = 0; i < 100; i++)
                            {
                                sb.AppendLine(Guid.NewGuid().ToString());
                            }
                            AddJob(db, sb.ToString(), Guid.NewGuid().ToString());
                            Console.Write("+");
                            Thread.Sleep(100);
                            lock (alive_monitor)
                            {
                                if (!alive_condition)
                                {
                                    return;
                                }
                            }
                        }
                    }
                    finally
                    {
                        Console.Write("<~" + thrNo + ">");
                    }
                });
                threads.Add(thr);
                thr.Start();
            }

            while (true)
            {
                lock (thrStarted_monitor)
                {
                    Monitor.Wait(thrStarted_monitor);
                    if (thrStarted_cnt == ThreadCount + ThreadCount2)
                    {
                        break;
                    }
                }
            }

            //wait for ten minutes
            Thread.Sleep(TestTimeInMinutes * 60 * 1000);

            lock (alive_monitor)
            {
                alive_condition = false;
                Monitor.PulseAll(alive_monitor);
            }
            foreach (var thr in threads)
            {
                thr.Join();
            }

            var j = main_db.ExecuteQuery(SelectCQL_Main(1)).ToArray();
            var c = main_db.ExecuteQuery(SelectCQL_Trans(1)).ToArray();

            if (j.Count() > 0 || c.Count() > 0)
            {
                Console.WriteLine("Error");
            }

            Console.WriteLine("Finished");
        }
        public static void Test()
        {
            int TestTimeInMinutes = 10;

            int ThreadCount = 50;
            int ThreadCount2 = 10;
            int TimeOut_Sec = 5;
            bool usePooling = true;

            object alive_monitor = new object();
            bool alive_condition = true;
            List<Thread> threads = new List<Thread>();

            int thrStarted_cnt = 0;
            object thrStarted_monitor = new object();

            //initialize
            CassandraContext main_db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));
            {
                if (main_db.KeyspaceExists(KeyspaceName))
                    main_db.DropKeyspace(KeyspaceName);

                var keyspace = new CassandraKeyspace(new CassandraKeyspaceSchema
                {
                    Name = KeyspaceName,
                }, main_db);

                keyspace.TryCreateSelf();

                CreateTablesIfNotExists(main_db);
            }

            for (int tI = 0; tI < ThreadCount; tI++)
            {
                int thrNo = tI;
                var thr = new Thread(() =>
                {

                    Console.Write("(*" + thrNo + ")");
                    try
                    {
                        CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));
                        lock (thrStarted_monitor)
                        {
                            thrStarted_cnt++;
                            Monitor.PulseAll(thrStarted_monitor);
                        }

                        while (true)
                        {
                            var job = GetJob(db, 10);
                            if (job != null)
                            {
                                Console.Write("-");
                                if (job.GetLogic() == null || job.GetCommand() == null)
                                    Console.WriteLine("Error");
                                DeleteJob(db, job);
                            }
                            else
                            {
                                lock (alive_monitor)
                                {
                                    if (!alive_condition)
                                        return;
                                    else
                                        Monitor.Wait(alive_monitor, TimeOut_Sec * 1000);
                                }
                            }
                        }
                    }
                    finally
                    {
                        Console.Write("(~" + thrNo + ")");
                    }
                });
                threads.Add(thr);
                thr.Start();
            }

            for (int tI = 0; tI < ThreadCount2; tI++)
            {
                int thrNo = tI;
                var thr = new Thread(() =>
                {
                    Console.Write("<*" + thrNo + ">");
                    try
                    {
                        CassandraContext db = new CassandraContext(new ConnectionBuilder(keyspace: KeyspaceName, server: Server, cqlVersion: CqlVersion.Cql3, pooling: usePooling));
                        lock (thrStarted_monitor)
                        {
                            thrStarted_cnt++;
                            Monitor.PulseAll(thrStarted_monitor);
                        }

                        while (true)
                        {
                            StringBuilder sb = new StringBuilder();
                            for (int i = 0; i < 100; i++)
                                sb.AppendLine(Guid.NewGuid().ToString());
                            AddJob(db, sb.ToString(), Guid.NewGuid().ToString());
                            Console.Write("+");
                            Thread.Sleep(100);
                            lock (alive_monitor)
                            {
                                if (!alive_condition)
                                    return;
                            }
                        }
                    }
                    finally
                    {
                        Console.Write("<~" + thrNo + ">");
                    }
                });
                threads.Add(thr);
                thr.Start();
            }

            while (true)
            {
                lock (thrStarted_monitor)
                {
                    Monitor.Wait(thrStarted_monitor);
                    if (thrStarted_cnt == ThreadCount+ThreadCount2)
                        break;
                }
            }

            //wait for ten minutes
            Thread.Sleep(TestTimeInMinutes * 60 * 1000);

            lock (alive_monitor)
            {
                alive_condition = false;
                Monitor.PulseAll(alive_monitor);
            }
            foreach (var thr in threads)
            {
                thr.Join();
            }

            var j = main_db.ExecuteQuery(SelectCQL_Main(1)).ToArray();
            var c = main_db.ExecuteQuery(SelectCQL_Trans(1)).ToArray();
            if (j.Count() > 0 || c.Count() > 0)
                Console.WriteLine("Error");

            Console.WriteLine("Finished");
        }
Exemple #25
0
        private static void CreateColumnFamilyWithUUIDOperator()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {

                db.ExecuteNonQuery("CREATE TABLE TestCF (KEY text PRIMARY KEY) WITH comparator=uuid AND default_validation=text;");

                Guid columnName1 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now);

                Guid columnName2 = GuidGenerator.GenerateTimeBasedGuid(DateTime.Now);

                db.ExecuteNonQuery(string.Format("INSERT INTO TestCF (KEY, {0}, {1}) VALUES ('Key1', 'Value1', 'Value2')", columnName1, columnName2));

                List<ICqlRow> rows = db.ExecuteQuery("SELECT * FROM TestCF WHERE KEY = 'Key1'").ToList();

                Guid value = rows[0].Columns[1].ColumnName.GetValue<Guid>();

                ConsoleHeader("Returned data from db");
                ConsoleHeader(value.ToString());
            }
        }
Exemple #26
0
        private static void ReadAllPosts()
        {
            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                var key = "first-blog-post";

                var tagsFamily = db.GetColumnFamily("Tags");

                // get the post back from the database
                ConsoleHeader("getting 'first-blog-post'");

                // query using CQL
                var posts = db.ExecuteQuery("SELECT * FROM Posts LIMIT 25");

                // query using API
                dynamic tags = tagsFamily.Get(key).FirstOrDefault();

                // show details
                ConsoleHeader("showing post");
                foreach (dynamic post in posts)
                {
                    Console.WriteLine(
                        String.Format("=={0} by {1}==\n{2}",
                            post.Title,
                            post.Author,
                            post.Body
                        ));
                }

                // show tags
                ConsoleHeader("showing tags");
                foreach (var tag in tags)
                    Console.WriteLine(String.Format("{0}:{1}", tag.ColumnName, tag.ColumnValue));
            }
        }
Exemple #27
0
        private void ExecuteSearch()
        {
            PleaseWait frmPW = new PleaseWait();

            frmPW.Show();
            Application.DoEvents();

            MyDs.Tables.Clear();
            outlookGrid1.Rows.Clear();
            DataTable dt = new DataTable();

            if (tbFirstName.Text.Length == 3)
            {
                tbFirstName.Text = "38943551" + tbFirstName.Text;
            }

            lblNoRows.Text       = "";
            lblSumAmount.Text    = "";
            lblSumAmountVat.Text = "";

            dt.TableName = "Razgovori";
            dt.Columns.Add("Direction");
            dt.Columns.Add("Caller number");
            dt.Columns.Add("Dialed number");
            dt.Columns.Add("Call started");
            dt.Columns.Add("Call duration");
            dt.Columns.Add("Amount w/out VAT");
            dt.Columns.Add("Amount with VAT");

            String CQL = "SELECT direction, caller, called, start, duration, amount, amount_ddv FROM razgovori";

            String WherePart = FillWherePart();

            CQL += WherePart;

            using (var db = new CassandraContext(keyspace: KeyspaceName, server: Server))
            {
                foreach (var row2 in db.ExecuteQuery(CQL))
                {
                    DataRow dr = dt.NewRow();// new DataRow();
                    dr[0] = row2.Columns[0].ColumnValue;
                    dr[1] = row2.Columns[1].ColumnValue;
                    dr[2] = row2.Columns[2].ColumnValue;
                    dr[3] = row2.Columns[3].ColumnValue;
                    dr[4] = row2.Columns[4].ColumnValue;
                    dr[5] = row2.Columns[5].ColumnValue;
                    dr[6] = row2.Columns[6].ColumnValue;

                    dt.Rows.Add(dr);
                }
            }

            MyDs.Tables.Add(dt);

            if (MyDs.Tables[0].Rows.Count > 0)
            {
                //int ColumnIndex = 1;
                outlookGrid1.BindData(MyDs, MyDs.Tables[0].TableName);
                //outlookGrid1.GroupTemplate.Column = outlookGrid1.Columns[ColumnIndex];

                //ListSortDirection lsd = ListSortDirection.Ascending;
                //outlookGrid1.Sort(new DataRowComparer(ColumnIndex, lsd));
                //outlookGrid1.Columns[0].Visible = false;
                //outlookGrid1.Columns[1].Visible = false;

                outlookGrid1.AllowUserToResizeColumns = true;

                outlookGrid1.Columns[0].Width = 300;
                outlookGrid1.Columns[2].Width = 120;
                outlookGrid1.Columns[3].Width = 120;

                Decimal amount     = 0;
                Decimal amount_vat = 0;

                for (int i = 0; i < MyDs.Tables[0].Rows.Count; i++)
                {
                    amount     += Convert.ToDecimal(MyDs.Tables[0].Rows[i][5].ToString());
                    amount_vat += Convert.ToDecimal(MyDs.Tables[0].Rows[i][6].ToString());
                }

                lblNoRows.Text       = "Number of rows: " + MyDs.Tables[0].Rows.Count;
                lblSumAmount.Text    = "Sum of Amount: " + amount.ToString();
                lblSumAmountVat.Text = "Sum of Amount with VAT: " + amount_vat.ToString();
            }
            frmPW.Close();
        }