Exemple #1
0
        public virtual async Task HandleRecivedEvent(IEventEnvelope data, StreamSequenceToken token)
        {
            using (log.BeginScope(ActorId))
            {
                if (data.EventVersion == (version + 1))
                {
                    await Dispatcher.DispatchAsync(this, data);

                    log.LogInformation("Projection recived event:{eventData}", data);
                    version++;
                }
                else
                {
                    version = +await eventTableStoreStream.ReadEvents(Apply, version);
                }

                fileStorageProvider.SaveToFile <T>(new ProjectionStoreEntity <T>(version, state), Id);
            }
        }