Exemple #1
0
        /// <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));
        }