public async Task <T> AggregateStreamAsync <T>(Guid streamId, int version = 0, DateTime?timestamp = null, T state = null, CancellationToken token = new CancellationToken()) where T : class { var selector = _store.Events.EnsureAsGuidStorage(_session); var inner = new EventQueryHandler <Guid>(selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var events = await _session.ExecuteHandlerAsync(inner, token); if (!events.Any()) { return(null); } var aggregator = _store.Events.Projections.AggregatorFor <T>(); var aggregate = await aggregator.BuildAsync(events, _session, state, token); if (aggregate == null) { return(null); } var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamId); return(aggregate); }
public Task <IList <IEvent> > FetchStreamAsync(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = new CancellationToken()) { var handler = new EventQueryHandler(_selector, streamId, version, timestamp); return(_connection.FetchAsync(handler, null, token)); }
public T AggregateStream <T>(Guid streamId, int version = 0, DateTime?timestamp = null) where T : class, new() { var inner = new EventQueryHandler(_selector, streamId, version, timestamp); var aggregator = _schema.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner); return(_connection.Fetch(handler, null)); }
public IList <IEvent> FetchStream(Guid streamId, int version = 0, DateTime?timestamp = null) { _tenant.EnsureStorageExists(typeof(EventStream)); var handler = new EventQueryHandler(_selector, streamId, version, timestamp); return(_connection.Fetch(handler, null, null, _tenant)); }
public IReadOnlyList <IEvent> FetchStream(string streamKey, int version = 0, DateTime?timestamp = null) { var selector = _store.Events.EnsureAsStringStorage(_session); var handler = new EventQueryHandler <string>(selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_session.ExecuteHandler(handler)); }
public Task <IReadOnlyList <IEvent> > FetchStreamAsync(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = default(CancellationToken)) { var selector = _store.Events.EnsureAsGuidStorage(_session); var handler = new EventQueryHandler <Guid>(selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_session.ExecuteHandlerAsync(handler, token)); }
public Task <IReadOnlyList <IEvent> > FetchStreamAsync(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = default(CancellationToken)) { ensureAsGuidStorage(); var handler = new EventQueryHandler <Guid>(_selector, streamId, version, timestamp); return(_connection.FetchAsync(handler, null, null, _tenant, token)); }
public IReadOnlyList <IEvent> FetchStream(Guid streamId, int version = 0, DateTime?timestamp = null) { ensureAsGuidStorage(); var handler = new EventQueryHandler <Guid>(_selector, streamId, version, timestamp); return(_connection.Fetch(handler, null, null, _tenant)); }
public IReadOnlyList <IEvent> FetchStream(string streamKey, int version = 0, DateTime?timestamp = null) { ensureAsStringStorage(); var handler = new EventQueryHandler <string>(_selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_connection.Fetch(handler, null, null, _tenant)); }
public Task <IReadOnlyList <IEvent> > FetchStreamAsync(string streamKey, int version = 0, DateTime?timestamp = null, CancellationToken token = default(CancellationToken)) { ensureAsStringStorage(); var handler = new EventQueryHandler <string>(_selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_connection.FetchAsync(handler, null, null, _tenant, token)); }
public IReadOnlyList <IEvent> FetchStream(Guid streamId, int version = 0, DateTime?timestamp = null) { ensureAsGuidStorage(); var handler = new EventQueryHandler <Guid>(_selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_session.ExecuteHandler(handler)); }
public IReadOnlyList <IEvent> FetchStream(Guid streamId, int version = 0, DateTime?timestamp = null) { // TODO -- do this later by just delegating to Load<StreamState>(streamId) var selector = _store.Events.EnsureAsGuidStorage(_session); var handler = new EventQueryHandler <Guid>(selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); return(_session.ExecuteHandler(handler)); }
public Task <T> AggregateStreamAsync <T>(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = new CancellationToken()) where T : class, new() { var inner = new EventQueryHandler(_selector, streamId, version, timestamp); var aggregator = _schema.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner); return(_connection.FetchAsync(handler, null, token)); }
public Task <IList <IEvent> > FetchStreamAsync(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = new CancellationToken()) { _tenant.EnsureStorageExists(typeof(EventStream)); var handler = new EventQueryHandler(_selector, streamId, version, timestamp); return(_connection.FetchAsync(handler, null, null, _tenant, token)); }
public T AggregateStream <T>(string streamKey, int version = 0, DateTime?timestamp = null, T state = null) where T : class { ensureAsStringStorage(); var inner = new EventQueryHandler <string>(_selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var aggregator = _store.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session, state); var aggregate = _connection.Fetch(handler, null, null, _tenant); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamKey); return(aggregate); }
public async Task <T> AggregateStreamAsync <T>(Guid streamId, int version = 0, DateTime?timestamp = null, CancellationToken token = new CancellationToken()) where T : class, new() { var inner = new EventQueryHandler(_selector, streamId, version, timestamp); var aggregator = _schema.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session); var aggregate = await _connection.FetchAsync(handler, null, token).ConfigureAwait(false); var assignment = _schema.IdAssignmentFor <T>(); assignment.Assign(aggregate, streamId); return(aggregate); }
public T AggregateStream <T>(Guid streamId, int version = 0, DateTime?timestamp = null, T state = null) where T : class { var selector = _store.Events.EnsureAsGuidStorage(_session); var inner = new EventQueryHandler <Guid>(selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var aggregator = _store.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session, state); var aggregate = _session.ExecuteHandler(handler); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamId); return(aggregate); }
public async Task <T> AggregateStreamAsync <T>(Guid streamId, int version = 0, DateTime?timestamp = null, T state = null, CancellationToken token = new CancellationToken()) where T : class { var selector = _store.Events.EnsureAsGuidStorage(_session); var inner = new EventQueryHandler <Guid>(selector, streamId, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var aggregator = _store.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session, state); var aggregate = await _session.ExecuteHandlerAsync(handler, token).ConfigureAwait(false); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamId); return(aggregate); }
public async Task <T> AggregateStreamAsync <T>(string streamKey, int version = 0, DateTime?timestamp = null, T state = null, CancellationToken token = new CancellationToken()) where T : class { ensureAsStringStorage(); var inner = new EventQueryHandler <string>(_selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var aggregator = _store.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session, state); var aggregate = await _connection.FetchAsync(handler, null, null, _tenant, token).ConfigureAwait(false); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamKey); return(aggregate); }
public T AggregateStream <T>(Guid streamId, int version = 0, DateTime?timestamp = null) where T : class, new() { _tenant.EnsureStorageExists(typeof(EventStream)); var inner = new EventQueryHandler(_selector, streamId, version, timestamp); var aggregator = _store.Events.AggregateFor <T>(); var handler = new AggregationQueryHandler <T>(aggregator, inner, _session); var aggregate = _connection.Fetch(handler, null, null, _tenant); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamId); return(aggregate); }
public T AggregateStream <T>(string streamKey, int version = 0, DateTime?timestamp = null, T state = null) where T : class { var selector = _store.Events.EnsureAsStringStorage(_session); var inner = new EventQueryHandler <string>(selector, streamKey, version, timestamp, _store.Events.TenancyStyle, _tenant.TenantId); var events = _session.ExecuteHandler(inner); if (!events.Any()) { return(null); } var aggregator = _store.Events.Projections.AggregatorFor <T>(); var aggregate = aggregator.Build(events, _session, state); var assignment = _tenant.IdAssignmentFor <T>(); assignment.Assign(_tenant, aggregate, streamKey); return(aggregate); }
public IList <IEvent> FetchStream(Guid streamId, int version = 0, DateTime?timestamp = null) { var handler = new EventQueryHandler(_selector, streamId, version, timestamp); return(_connection.Fetch(handler, null)); }
public AggregationQueryHandler(IAggregator <T> aggregator, EventQueryHandler inner, IDocumentSession session = null) { _aggregator = aggregator; _inner = inner; _session = session; }
public AggregationQueryHandler(Aggregator <T> aggregator, EventQueryHandler inner) { _aggregator = aggregator; _inner = inner; }