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); }
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); }