Beispiel #1
0
        public async Task Handle(long streamPosition, ProjectEvents.EnvironmentStateAdded @event, CancellationToken stoppingToken)
        {
            var eventAudit = CreateEventAudit(streamPosition, @event);
            var storeKey   = Projection.StoreKey(@event.Id, @event.EnvironmentKey);

            var toggleStates     = @event.ToggleStates.Select(ts => Model.ToggleState.Create(ts.Key, ts.Value));
            var environmentState = Model.EnvironmentState.Create(eventAudit, toggleStates);

            var projection = Projection.Create(eventAudit, environmentState);
            await Projections.Create(storeKey, projection).ConfigureAwait(false);
        }
Beispiel #2
0
        public async Task Handle(long streamPosition, ProjectEvents.EnvironmentStateAdded @event, CancellationToken stoppingToken)
        {
            var tasks = new List <Task>();

            foreach (var toggleState in @event.ToggleStates)
            {
                var eventAudit = CreateEventAudit(streamPosition, @event);
                var task       = CreateOrUpdateToggleState(eventAudit, @event.Id, @event.EnvironmentKey, toggleState.Key, toggleState.Value);
                tasks.Add(task);
            }

            await Task.WhenAll(tasks);
        }