/// <summary> /// Check the current progress of all asynchronous projections /// </summary> /// <param name="token"></param> /// <returns></returns> public async Task <IReadOnlyList <ProjectionProgress> > AllProjectionProgress(CancellationToken token = default(CancellationToken)) { _store.Tenancy.Default.EnsureStorageExists(typeof(IEvent)); var handler = (IQueryHandler <IReadOnlyList <ProjectionProgress> >) new ListQueryHandler <ProjectionProgress>(new ProjectionProgressStatement(_store.Events), new ProjectionProgressSelector()); using (var session = (QuerySession)_store.QuerySession()) { return(await session.ExecuteHandlerAsync(handler, token)); } }
public async Task <IReadOnlyList <ShardState> > AllProjectionProgress(CancellationToken token = default) { await _store.Tenancy.Default.Database.EnsureStorageExistsAsync(typeof(IEvent), token).ConfigureAwait(false); var handler = (IQueryHandler <IReadOnlyList <ShardState> >) new ListQueryHandler <ShardState>(new ProjectionProgressStatement(_store.Events), new ShardStateSelector()); var session = (QuerySession)_store.QuerySession(); await using var _ = session.ConfigureAwait(false); return(await session.ExecuteHandlerAsync(handler, token).ConfigureAwait(false)); }