public CassandraEventStorePlayer(ISession session, ICassandraEventStoreTableNameStrategy tableNameStrategy, string boundedContext, ISerializer serializer)
 {
     this.serializer        = serializer;
     this.tableNameStrategy = tableNameStrategy;
     this.session           = session;
     this.loadAggregateEventsPreparedStatement = session.Prepare(String.Format(LoadAggregateEventsQueryTemplate, tableNameStrategy.GetEventsTableName(boundedContext)));
 }
Ejemplo n.º 2
0
 public CassandraEventStoreStorageManager(ISession session, string keyspace, ICassandraEventStoreTableNameStrategy tableNameStrategy, ICassandraReplicationStrategy replicationStrategy)
 {
     this.session             = session;
     this.keyspace            = keyspace;
     this.tableNameStrategy   = tableNameStrategy;
     this.replicationStrategy = replicationStrategy;
 }
        public CassandraEventStore(string boundedContext, ISession session, ICassandraEventStoreTableNameStrategy tableNameStrategy, ISerializer serializer, ConsistencyLevel writeConsistencyLevel, ConsistencyLevel readConsistencyLevel)
        {
            if (string.IsNullOrEmpty(boundedContext))
            {
                throw new ArgumentNullException(nameof(boundedContext));
            }
            if (ReferenceEquals(null, session))
            {
                throw new ArgumentNullException(nameof(session));
            }
            if (ReferenceEquals(null, tableNameStrategy))
            {
                throw new ArgumentNullException(nameof(tableNameStrategy));
            }
            if (ReferenceEquals(null, serializer))
            {
                throw new ArgumentNullException(nameof(serializer));
            }
            if (ReferenceEquals(null, writeConsistencyLevel))
            {
                throw new ArgumentNullException(nameof(writeConsistencyLevel));
            }
            if (ReferenceEquals(null, readConsistencyLevel))
            {
                throw new ArgumentNullException(nameof(readConsistencyLevel));
            }

            this.tableNameStrategy     = tableNameStrategy;
            this.boundedContext        = boundedContext;
            this.session               = session;
            this.serializer            = serializer;
            this.writeConsistencyLevel = writeConsistencyLevel;
            this.readConsistencyLevel  = readConsistencyLevel;
            this.persistAggregateEventsPreparedStatements = new ConcurrentDictionary <string, PreparedStatement>();
            this.loadAggregateEventsPreparedStatements    = new ConcurrentDictionary <string, PreparedStatement>();
        }