public EventStoreHubInitializer(IEventStoreFacade connection,
                                 IHubContext <EventStoreHub> hubConnection, ILogger logger,
                                 IEventConverter eventConveter,
                                 IProjectionSchemaRegister projectionSchema)
 {
     this._connection       = connection;
     this._hubConnection    = hubConnection;
     this._logger           = logger;
     this._eventConverter   = eventConveter;
     this._projectionSchema = projectionSchema;
 }
        public InMemoryEventStream(IEventAggregator aggregator,
                                   IProjectionSchemaRegister projectionSchema)
        {
            _aggregator = aggregator;
            _events     = new List <EventEnvelope>();
            var mth = this.GetType().GetMethod(nameof(SubscribeCore), BindingFlags.Instance | BindingFlags.NonPublic);

            foreach (var t in projectionSchema.Events)
            {
                mth.MakeGenericMethod(t).Invoke(this, Array.Empty <object>());
            }
        }
示例#3
0
        public static async Task BindToSignalHub(this IEventStoreFacade connection,
                                                 IEventConverter eventConverter,
                                                 IProjectionSchemaRegister projectionSchema,
                                                 IHubContext <EventStoreHub> hubConnection, Serilog.ILogger logger)
        {
            foreach (var e in projectionSchema.Events)
            {
                var configuratorType = typeof(SignalRConfigurator <>).MakeGenericType(e);
                var configurator     = Ctor <ISignalRConfigurator> .Create(configuratorType);

                await configurator.Configure(connection, eventConverter, hubConnection, logger);
            }
        }
示例#4
0
        public QueryEngine(IServiceProvider serviceProvider,
                           IQuerySchemaRegister querySchemaRegister,
                           IProjectionSchemaRegister projectionSchemaRegister,
                           IProjectionSubscriptionController subscriptionController)
        {
            _serviceProvider          = serviceProvider;
            _querySchemaRegister      = querySchemaRegister;
            _projectionSchemaRegister = projectionSchemaRegister;
            _subscriptionController   = subscriptionController;


            _liveQueries = new ConcurrentDictionary <IQuery, ILiveQuery>();
            _partitions  = new ConcurrentDictionary <Guid, DataPartitionStream <TModel> >();

            Log.Debug("QueryEngine for model {modelName} created.", typeof(TModel).Name);
        }
 public EventAggregatorModelProjectionSubscriber(IEventAggregator eventAggregator,
                                                 IProjectionSchemaRegister projectionSchemaRegister)
 {
     _pubSubEvent = eventAggregator.GetEvent <PubSubEvent <ProjectionEvent <TProjection> > >();
     _schema      = projectionSchemaRegister.FindByModelType(typeof(TModel));
 }
示例#6
0
 public ProjectionExecutor(IProjectionSchemaRegister projectionSchema, IServiceProvider serviceProvider, ILogger logger)
 {
     _serviceProvider = serviceProvider;
     _logger          = logger;
     _schema          = projectionSchema.FindByModelType(typeof(TModel));
 }