Beispiel #1
0
        public async Task ResetAsync(CancellationToken cancellationToken = default)
        {
            if (cancellationToken.IsCancellationRequested)
            {
                _logger.LogInformation($"{nameof(StoreProjector<TProjection>)}.{nameof(ResetAsync)} was cancelled before execution");
                cancellationToken.ThrowIfCancellationRequested();
            }

            using (var context = _projectionDbContextFactory.Create())
            {
                var state = await context.ProjectionStates.FindAsync(_name);

                if (state != null)
                {
                    state.Position         = 0;
                    state.LastModifiedDate = DateTimeOffset.UtcNow;

                    await context.SaveChangesAsync(cancellationToken);
                }

                await _projectionManager.ResetAsync(cancellationToken);
            }
        }