private IEnumerable <FluentColumn> GetColumns(BaseCassandraColumnFamily columnFamily)
        {
            var schema = ColumnFamily.GetSchema();
            var list   = new List <FluentColumn>();

            var parent = new CassandraColumnParent {
                ColumnFamily = columnFamily.FamilyName,
                SuperColumn  = SuperColumnName
            };

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema, SuperColumnName == null);

            var output = Session.GetClient().get_slice(
                Key,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var r = Helper.ConvertColumnToFluentColumn(result.Column, schema);
                list.Add(r);
            }

            return(list);
        }
예제 #2
0
        public override Void Execute(BaseCassandraColumnFamily columnFamily)
        {
            var parent = new ColumnParent {
                Column_family = columnFamily.FamilyName,
            };

            if (SuperColumnName != null)
            {
                parent.Super_column = SuperColumnName;
            }

            var column = new Column {
                Name      = ColumnName,
                Value     = ColumnValue,
                Timestamp = Timestamp.ToTimestamp(),
                Ttl       = TimeToLive
            };

            CassandraSession.Current.GetClient().insert(
                Key,
                parent,
                column,
                CassandraSession.Current.WriteConsistency
                );

            return(new Void());
        }
예제 #3
0
        public override Void Execute(BaseCassandraColumnFamily columnFamily)
        {
            var path = new ColumnPath {
                Column_family = columnFamily.FamilyName
            };

            if (SuperColumnName != null)
            {
                path.Super_column = SuperColumnName;
            }

            if (ColumnName != null)
            {
                path.Column = ColumnName;
            }

            CassandraSession.Current.GetClient().remove(
                Key,
                path,
                DateTimeOffset.Now.ToTimestamp(),
                CassandraSession.Current.WriteConsistency
                );

            return(new Void());
        }
예제 #4
0
        private IEnumerable <FluentSuperColumn> GetColumns(BaseCassandraColumnFamily columnFamily)
        {
            var schema = ColumnFamily.GetSchema();

            var parent = new CassandraColumnParent {
                ColumnFamily = columnFamily.FamilyName
            };

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema);

            var output = Session.GetClient().get_slice(
                Key,
                parent,
                SlicePredicate,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var r = Helper.ConvertSuperColumnToFluentSuperColumn(result.Super_column, schema);
                columnFamily.Context.Attach(r);
                r.MutationTracker.Clear();

                yield return(r);
            }
        }
        private IEnumerable <FluentColumnFamily> GetFamilies(BaseCassandraColumnFamily columnFamily)
        {
            var schema = ColumnFamily.GetSchema();

            var parent = new CassandraColumnParent {
                ColumnFamily = columnFamily.FamilyName
            };

            SlicePredicate = Helper.SetSchemaForSlicePredicate(SlicePredicate, schema);

            var output = Session.GetClient().get_range_slices(
                parent,
                SlicePredicate,
                KeyRange,
                Session.ReadConsistency
                );

            foreach (var result in output)
            {
                var r = new FluentColumnFamily(result.Key, columnFamily.FamilyName, columnFamily.GetSchema(), result.Columns.Select(col => {
                    return(Helper.ConvertColumnToFluentColumn(col.Column, schema));
                }));
                columnFamily.Context.Attach(r);
                r.MutationTracker.Clear();

                yield return(r);
            }
        }
예제 #6
0
        public override IFluentColumnFamily <CompareWith> Execute(BaseCassandraColumnFamily columnFamily)
        {
            var result = new FluentColumnFamily <CompareWith>(Key, columnFamily.FamilyName, GetColumns(columnFamily));

            columnFamily.Context.Attach(result);
            result.MutationTracker.Clear();

            return(result);
        }
        internal CassandraSlicePredicateQuery(BaseCassandraColumnFamily family, Expression expression)
        {
            Family     = family;
            Expression = expression;

            if (Expression == null)
            {
                Expression = Expression.Constant(this);
            }
        }
예제 #8
0
        internal CassandraSlicePredicateQuery(CassandraQuerySetup <TResult, CompareWith> setup, BaseCassandraColumnFamily family, Expression expression)
        {
            Setup      = setup;
            Family     = family;
            Expression = expression;

            if (Expression == null)
            {
                Expression = Expression.Constant(this);
            }
        }
예제 #9
0
        public override Void Execute(BaseCassandraColumnFamily columnFamily)
        {
            var path = new ColumnPath {
                Column_family = columnFamily.FamilyName
            };

            CassandraSession.Current.GetClient().remove(
                Key,
                path,
                DateTimeOffset.UtcNow.ToTimestamp(),
                CassandraSession.Current.WriteConsistency
                );

            return(new Void());
        }
        public override IDictionary <BytesType, int> Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                if (SuperColumnName != null)
                {
                    parent.Super_column = SuperColumnName;
                }

                var output = CassandraSession.Current.GetClient().multiget_count(
                    Keys.ToByteArrayList(),
                    parent,
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

                var results = new Dictionary <BytesType, int>();

                foreach (var result in output)
                {
                    results.Add(result.Key, result.Value);
                }

                return(results);
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
예제 #11
0
        public override int Execute(BaseCassandraColumnFamily columnFamily)
        {
            var parent = new ColumnParent {
                Column_family = columnFamily.FamilyName
            };

            if (SuperColumnName != null)
            {
                parent.Super_column = SuperColumnName;
            }

            var result = CassandraSession.Current.GetClient().get_count(
                Key,
                parent,
                SlicePredicate.CreateSlicePredicate(),
                CassandraSession.Current.ReadConsistency
                );

            return(result);
        }
        public override IEnumerable <IFluentColumnFamily <CompareWith> > Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                var output = CassandraSession.Current.GetClient().multiget_slice(
                    Keys.ToByteArrayList(),
                    parent,
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

                foreach (var result in output)
                {
                    var r = new FluentColumnFamily <CompareWith>(result.Key, columnFamily.FamilyName, result.Value.Select(col => {
                        return(Helper.ConvertColumnToFluentColumn <CompareWith>(col.Column));
                    }));
                    columnFamily.Context.Attach(r);
                    r.MutationTracker.Clear();

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
예제 #13
0
        private IEnumerable <IFluentColumn <CompareSubcolumnWith> > GetColumns(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                if (SuperColumnName != null)
                {
                    parent.Super_column = SuperColumnName;
                }

                var output = CassandraSession.Current.GetClient().get_slice(
                    Key,
                    parent,
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

                foreach (var result in output)
                {
                    var r = Helper.ConvertColumnToFluentColumn <CompareSubcolumnWith>(result.Column);
                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
예제 #14
0
        private IEnumerable <IFluentColumnFamily <CompareWith> > GetFamilies(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                var output = CassandraSession.Current.GetClient().get_indexed_slices(
                    parent,
                    IndexClause.CreateIndexClause(),
                    SlicePredicate.CreateSlicePredicate(),
                    CassandraSession.Current.ReadConsistency
                    );

                foreach (var result in output)
                {
                    var r = new FluentColumnFamily <CompareWith>(result.Key, columnFamily.FamilyName, result.Columns.Select(col => {
                        return(Helper.ConvertColumnToFluentColumn <CompareWith>(col.Column));
                    }));
                    columnFamily.Context.Attach(r);
                    r.MutationTracker.Clear();

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
예제 #15
0
        public override IFluentColumn <CompareWith> Execute(BaseCassandraColumnFamily columnFamily)
        {
            var path = new ColumnPath {
                Column_family = columnFamily.FamilyName
            };

            if (SuperColumnName != null)
            {
                path.Super_column = SuperColumnName;
            }

            if (ColumnName != null)
            {
                path.Column = ColumnName;
            }

            var output = CassandraSession.Current.GetClient().get(
                Key,
                path,
                CassandraSession.Current.ReadConsistency
                );

            return((IFluentColumn <CompareWith>)Helper.ConvertToFluentBaseColumn <CompareWith, VoidType>(output));
        }
        public virtual bool TryExecute(BaseCassandraColumnFamily columnFamily, out TResult result)
        {
            try
            {
                result = Execute(columnFamily);
            }
            catch (Exception exc)
            {
                Debug.WriteLine(exc);

                string message = exc.Message;

                if (exc is InvalidRequestException)
                {
                    message = ((InvalidRequestException)exc).Why;
                }

                result   = default(TResult);
                HasError = true;
                Error    = new CassandraException(message, exc);
            }

            return(!HasError);
        }
예제 #17
0
        public override Void Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession.Current.GetClient().truncate(columnFamily.FamilyName);

            return(new Void());
        }
 public abstract TResult Execute(BaseCassandraColumnFamily columnFamily);
        public override IEnumerable <IFluentSuperColumn <CompareWith, CompareSubcolumnWith> > Execute(BaseCassandraColumnFamily columnFamily)
        {
            CassandraSession _localSession = null;

            if (CassandraSession.Current == null)
            {
                _localSession = new CassandraSession();
            }

            try
            {
                var parent = new ColumnParent {
                    Column_family = columnFamily.FamilyName
                };

                if (SuperColumnName != null)
                {
                    parent.Super_column = SuperColumnName;
                }

                var output = CassandraSession.Current.GetClient().get_range_slices(
                    parent,
                    SlicePredicate.CreateSlicePredicate(),
                    KeyRange.CreateKeyRange(),
                    CassandraSession.Current.ReadConsistency
                    );

                foreach (var result in output)
                {
                    var r = new FluentSuperColumn <CompareWith, CompareSubcolumnWith>(result.Columns.Select(col => {
                        return(Helper.ConvertColumnToFluentColumn <CompareSubcolumnWith>(col.Column));
                    }));
                    columnFamily.Context.Attach(r);
                    r.MutationTracker.Clear();

                    yield return(r);
                }
            }
            finally
            {
                if (_localSession != null)
                {
                    _localSession.Dispose();
                }
            }
        }
 public override IEnumerable <IFluentColumnFamily <CompareWith> > Execute(BaseCassandraColumnFamily columnFamily)
 {
     return(GetFamilies(columnFamily));
 }
        public override FluentSuperColumn <CompareWith, CompareSubcolumnWith> Execute(BaseCassandraColumnFamily columnFamily)
        {
            var result = new FluentSuperColumn <CompareWith, CompareSubcolumnWith>(GetColumns(columnFamily));

            columnFamily.Context.Attach(result);
            result.MutationTracker.Clear();

            return(result);
        }