public static ISession Create( ITransaction transaction, IEventStore eventStore, ISnapshotStore snapshotStore, ILoggerFactory loggerFactory = null, IEventPublisher eventPublisher = null, IEventRouter eventRouter = null, IEventUpdateManager eventUpdateManager = null, IEnumerable <IMetadataProvider> metadataProviders = null, ISnapshotStrategy snapshotStrategy = null, IEventsMetadataService eventsMetadataService = null) { // TODO: refactor ctor's Session sucks :( if (eventStore == null) { throw new ArgumentNullException(nameof(eventStore)); } if (snapshotStore == null) { throw new ArgumentNullException(nameof(snapshotStore)); } if (loggerFactory == null) { loggerFactory = new NoopLoggerFactory(); } if (eventRouter == null) { eventRouter = StubEventRouter.Ok(); } if (eventPublisher == null) { eventPublisher = new EventPublisher(eventRouter); } var session = new Session( loggerFactory: loggerFactory, transaction: transaction, eventStore: eventStore, snapshotStore: snapshotStore, eventPublisher: eventPublisher, eventUpdateManager: eventUpdateManager, metadataProviders: metadataProviders, snapshotStrategy: snapshotStrategy, eventsMetadataService: eventsMetadataService); return(session); }
public Session( ILoggerFactory loggerFactory, ITransaction transaction, IEventStore eventStore, ISnapshotStore snapshotStore, IEventPublisher eventPublisher, IEventUpdateManager eventUpdateManager = null, IEnumerable <IMetadataProvider> metadataProviders = null, ISnapshotStrategy snapshotStrategy = null, IEventsMetadataService eventsMetadataService = null) { if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } if (metadataProviders == null) { metadataProviders = Enumerable.Empty <IMetadataProvider>(); } metadataProviders = metadataProviders.Concat(new IMetadataProvider[] { new AggregateTypeMetadataProvider(), new EventTypeMetadataProvider(), new CorrelationIdMetadataProvider() }); if (snapshotStrategy == null) { snapshotStrategy = new IntervalSnapshotStrategy(); } if (eventsMetadataService == null) { eventsMetadataService = new EventsMetadataService(); } _logger = loggerFactory.Create(nameof(Session)); _transaction = transaction ?? throw new ArgumentNullException(nameof(transaction)); _eventStore = eventStore ?? throw new ArgumentNullException(nameof(eventStore)); _snapshotStore = snapshotStore ?? throw new ArgumentNullException(nameof(snapshotStore)); _eventPublisher = eventPublisher ?? throw new ArgumentNullException(nameof(eventPublisher)); _snapshotStrategy = snapshotStrategy; _eventUpdateManager = eventUpdateManager; _metadataProviders = metadataProviders; _eventsMetadataService = eventsMetadataService; }
public static ISession Create( ITransaction transaction, ICompositeStores stores, ILoggerFactory loggerFactory = null, IEventPublisher eventPublisher = null, IEventRouter eventRouter = null, IEventUpdateManager eventUpdateManager = null, IEnumerable <IMetadataProvider> metadataProviders = null, ISnapshotStrategy snapshotStrategy = null, IEventsMetadataService eventsMetadataService = null) { return(Create(transaction, stores.EventStore, stores.SnapshotStore, loggerFactory, eventPublisher, eventRouter, eventUpdateManager, metadataProviders, snapshotStrategy, eventsMetadataService)); }