public async Task ApplyAsync(IDocumentSession session, EventStream[] streams, CancellationToken token) { foreach (var stream in MatchingStreams(streams)) { var state = await _finder.FindAsync(stream, session, token).ConfigureAwait(false) ?? new T(); update(state, stream); session.Store(state); } }
public async Task ApplyAsync(IDocumentSession session, EventPage page, CancellationToken token) { var matchingStreams = MatchingStreams(page); await _finder.FetchAllAggregates(session, matchingStreams, token).ConfigureAwait(false); foreach (var stream in matchingStreams) { var state = await _finder.FindAsync(stream, session, token).ConfigureAwait(false) ?? New <T> .Instance(); update(state, stream); session.Store(state); } }