コード例 #1
0
        public async Task ConfigureServices(IServiceProvider serviceProvider)
        {
            IProjectionSubscriptionController controller =
                serviceProvider.GetRequiredService <IProjectionSubscriptionController>();

            //IProjectionStreamSubscriptionController streamController =
            //    serviceProvider.GetRequiredService<IProjectionStreamSubscriptionController>();

            foreach (var i in _projections)
            {
                await controller.SubscribeHandlers(i, new ProjectionEventHandlerFactory(serviceProvider, i));

                //await streamController.SubscribeHandlers(i, new ProjectionStreamEventHandlerFactory(serviceProvider, i)); // this will load checkpoints.
            }
        }
コード例 #2
0
        public DataPartitionStream(Guid partitionId,
                                   QueryEngine <TModel> engine,
                                   IProjectionSubscriptionController subscriptionController,
                                   IProjectionSchema schema,
                                   bool isRootPartition = false)
        {
            IsRootStream            = isRootPartition;
            PartitionId             = partitionId;
            _engine                 = engine;
            _subscriptionController = subscriptionController;
            _schema                 = schema;
            _associatedQueries      = new ConcurrentDictionary <IQuery, ILiveQuery>();

            _initTask = Initialize();
        }
コード例 #3
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);
        }