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); }
public SqlSubscriptionPersistence(string commitConnectionstring, long?initialReadPosition, ISqlProjection projection) { InitialReadPosition = initialReadPosition; _commitConnectionstring = commitConnectionstring; _projection = projection; }