Пример #1
0
        public async Task Run(
            IStreamEvents streamEvents,
            IProjectEvents projection,
            Action <Exception> handleException,
            CancellationToken ct)
        {
            var delay = Backoff.DecorrelatedJitterBackoffV2(
                medianFirstRetryDelay: _config.FirstRetryDelay,
                retryCount: _config.RetryCount);

            await Policy
            .Handle <ApertureProjectionException>()
            .WaitAndRetryAsync(delay, (ex, _) => handleException(ex))
            .ExecuteAsync(
                async() => await projection.ProjectAsync(streamEvents, ct));
        }
Пример #2
0
        private async Task ProjectEventsAsync(IProjectEvents projection, List <IEvent> events)
        {
            var eventStream = new EventStream(events);

            await projection.ProjectAsync(eventStream, CancellationToken.None);
        }
Пример #3
0
 public virtual async Task Run(
     IStreamEvents streamEvents,
     IProjectEvents projection,
     Action <Exception> handleException,
     CancellationToken ct) =>
 await projection.ProjectAsync(streamEvents, ct);