Beispiel #1
0
 public SqlProjectionSubscription(IStreamStore store, ISqlProjection projection, SqlSubscriptionPersistence persistence)
 {
     _store            = store;
     _projection       = projection;
     _persistence      = persistence;
     _lastReadPosition = persistence.InitialReadPosition;
     _runningLive      = false;
 }
        private void RegisterSubscriber(ISqlProjection projection, SqlConnection conn)
        {
            conn.Execute(projection.SchemaTeardown);
            foreach (var setupStep in projection.SchemaSetup)
            {
                conn.Execute(setupStep);
            }

            conn.Execute("INSERT INTO Inf_ReadSubscriptions (SchemaName, SchemaRevision, ReadPosition) VALUES (@name, @rev, null)",
                         new { name = projection.SchemaIdentifier.Name, rev = projection.SchemaIdentifier.Revision });
        }
        private SqlProjectionSubscription WakeReadProjection(ISqlProjection projection,
                                                             SubscriptionState subscriptionState, SqlConnection connection)
        {
            if (subscriptionState.AlreadyExists == false)
            {
                RegisterSubscriber(projection, connection);
            }

            var persistence = new SqlSubscriptionPersistence(_connectionString, subscriptionState.ReadPosition, projection);
            var subscriber  = new SqlProjectionSubscription(_sqlStreamStore, projection, persistence);

            subscriber.Subscribe();
            return(subscriber);
        }
Beispiel #4
0
 public SqlSubscriptionPersistence(string commitConnectionstring, long?initialReadPosition, ISqlProjection projection)
 {
     InitialReadPosition     = initialReadPosition;
     _commitConnectionstring = commitConnectionstring;
     _projection             = projection;
 }