internal EventStore(IServiceProvider provider, ILogger <EventStore> logger) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } this.streams = new EventStreams(provider, provider.GetService <ILogger <EventStreams> >()); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
void main() { IEventStore eventStore = new EventStore(); IEventStreams eventStreams = eventStore.Connect(); var stream = eventStreams["aggregate-1"]; eventStreams.Categories(); eventStreams.StreamsInCategory("aggregate"); stream.Add(events); stream.ToObject <Engagement>((event, engagement) => engagement.Apply(event));