private void SerializeDeserializeTest(bool prepared)
        {
            PreparedStatement insertPs = null;
            PreparedStatement selectPs = null;
            var prefix = "simple-";

            if (prepared)
            {
                insertPs = Session.Prepare(InsertGeoQuery);
                selectPs = Session.Prepare(SelectGeoQuery);
                prefix   = "prepared-";
            }
            foreach (var value in Values)
            {
                var id        = prefix + value;
                var statement = prepared ?
                                (IStatement)insertPs.Bind(id, value) :
                                new SimpleStatement(InsertGeoQuery, id, value);
                Session.Execute(statement);

                statement = prepared ?
                            (IStatement)selectPs.Bind(id) :
                            new SimpleStatement(SelectGeoQuery, id);
                var row = Session.Execute(statement).FirstOrDefault();
                Assert.NotNull(row, "Row with id '{0}' not found", id);
                Assert.AreEqual(value, row.GetValue <object>("value"));
            }
        }
        public RowSet InvokeDeleteOrder(object[] parameters)
        {
            BatchStatement batch         = new BatchStatement();
            List <Order>   orderProducts = EntityMapper.ToOrders(session.Execute(preparedStatements[Statements.SELECT_ORDER_FROM_ORDER].Bind(parameters)));
            Product        dbProduct;

            foreach (Order cancelledOrder in orderProducts)
            {
                dbProduct = EntityMapper.ToProducts(session.Execute(session.Prepare("SELECT * FROM products WHERE category=? AND productname=?").Bind(cancelledOrder.Category, cancelledOrder.ProductName))).FirstOrDefault();
                batch.Add(preparedStatements[Statements.UPDATE_PRODUCT_AMOUNT].Bind(dbProduct.Amount + cancelledOrder.Amount, cancelledOrder.Category, cancelledOrder.ProductName));
            }
            batch.Add(preparedStatements[Statements.DELETE_ORDER_FROM_ORDERS].Bind(parameters));
            return(session.Execute(batch));
        }
        public Guid Post([FromBody] User user)
        {
            IDseCluster cluster = DseCluster.Builder()
                                  .AddContactPoint("127.0.0.1")
                                  .Build();
            IDseSession session     = cluster.Connect();
            Guid        user_id     = Guid.NewGuid();
            var         insert_user = session.Prepare(
                "INSERT INTO driver_test.user (id, first_name, last_name) VALUES(?,?,?)"
                );
            RowSet results = session.Execute(insert_user.Bind(user_id, user.first_name, user.last_name));

            return(user_id);
        }
        public string Get(Guid id)
        {
            IDseCluster cluster = DseCluster.Builder()
                                  .AddContactPoint("127.0.0.1")
                                  .Build();
            IDseSession session = cluster.Connect();

            var    get_user = session.Prepare("SELECT * FROM driver_test.user where id = ?");
            RowSet results  = session.Execute(get_user.Bind(id));

            if (results.Any())
            {
                session.Dispose();
                Row user = results.First();
                return(user.GetValue <String>("first_name") + user.GetValue <String>("last_name"));
            }
            else
            {
                session.Dispose();
                return("User not found");
            }
        }
        public IEnumerable <string> Get()
        {
            IDseCluster cluster = DseCluster.Builder()
                                  .AddContactPoint("127.0.0.1")
                                  .Build();
            IDseSession session = cluster.Connect();

            var    get_users = session.Prepare("SELECT * FROM driver_test.user");
            RowSet results   = session.Execute(get_users.Bind());

            List <string> final_results = new List <string>();

            foreach (Row row in results.AsEnumerable())
            {
                final_results.Add(row.GetValue <Guid>("id").ToString() + " " +
                                  row.GetValue <String>("first_name") + " " +
                                  row.GetValue <String>("last_name") + "\n");
            }


            return(final_results);
        }