protected ApplicationClient(DomainSchema domainSchema, ProjectionSchema projectionSchema, ICommandQueue commandQueue, IViewStore viewStore, ApplicationState homeState) { Domain = domainSchema ?? throw new ArgumentNullException(nameof(domainSchema)); Projection = projectionSchema ?? throw new ArgumentNullException(nameof(projectionSchema)); _commandQueue = commandQueue ?? throw new ArgumentNullException(nameof(commandQueue)); _viewStore = viewStore ?? throw new ArgumentNullException(nameof(viewStore)); _currentState = homeState ?? throw new ArgumentNullException(nameof(homeState)); _currentState.AttachToApplication(this, commandQueue, viewStore); }
public ProjectionAgent(ProjectionSchema projectionSchema, IEventStore eventStore, IViewStore viewStore, ILogger <ProjectionAgent> logger) { _projectionSchema = projectionSchema ?? throw new ArgumentNullException(nameof(projectionSchema)); _eventStore = eventStore ?? throw new ArgumentNullException(nameof(eventStore)); _viewStore = viewStore ?? throw new ArgumentNullException(nameof(viewStore)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); foreach (var projectorInfo in _projectionSchema.Projectors) { foreach (var eventInfo in projectorInfo.Events) { _eventStore.ListenEvents(eventInfo, e => ApplyEvent(e)); _logger.LogTrace("'{projector}' subscribed to '{event}'", projectorInfo, eventInfo); } } }
public MongoProjectionStore(ProjectionSchema projectionSchema, String connectionString, ILogger <MongoProjectionStore> logger) { if (String.IsNullOrWhiteSpace(connectionString)) { throw new ArgumentNullException(nameof(connectionString)); } var conventions = new ConventionPack { new IgnoreExtraElementsConvention(true) }; ConventionRegistry.Register("Cleanic Conventions", conventions, t => true); _mongo = new MongoClient(connectionString); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _projectionSchema = projectionSchema ?? throw new ArgumentNullException(nameof(projectionSchema)); Db = _mongo.GetDatabase("views"); }