Пример #1
0
 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);
 }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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");
        }