public void Register(ISagaRepositoryRegistrationConfigurator <TSaga> configurator)
        {
            configurator.RegisterSingleInstance(Factory);

            configurator.RegisterSagaRepository <TSaga, DatabaseContext <TSaga>, DocumentDbSagaConsumeContextFactory <TSaga>,
                                                 DocumentDbSagaRepositoryContextFactory <TSaga> >();
        }
Esempio n. 2
0
 public void Register <T>(ISagaRepositoryRegistrationConfigurator <T> configurator)
     where T : class, IVersionedSaga
 {
     configurator.RegisterSingleInstance(_connectionFactory);
     configurator.RegisterSingleInstance(new RedisSagaRepositoryOptions <T>(ConcurrencyMode, LockTimeout, LockSuffix, KeyPrefix, _databaseSelector, Expiry));
     configurator.RegisterSagaRepository <T, DatabaseContext <T>, RedisSagaConsumeContextFactory <T>, RedisSagaRepositoryContextFactory <T> >();
 }
Esempio n. 3
0
 public void Register <T>(ISagaRepositoryRegistrationConfigurator <T> configurator)
     where T : class, ISaga
 {
     configurator.RegisterSingleInstance(_connectionFactory);
     configurator.RegisterSagaRepository <T, DatabaseContext <T>, SagaConsumeContextFactory <DatabaseContext <T>, T>,
                                          AzureTableSagaRepositoryContextFactory <T> >();
 }
 public void Register <T>(ISagaRepositoryRegistrationConfigurator <T> configurator)
     where T : class, ISaga
 {
     configurator.RegisterSingleInstance(new DapperOptions <T>(_connectionString, IsolationLevel));
     configurator.RegisterSagaRepository <T, DatabaseContext <T>, SagaConsumeContextFactory <DatabaseContext <T>, T>,
                                          DapperSagaRepositoryContextFactory <T> >();
 }
 public void Register <T>(ISagaRepositoryRegistrationConfigurator <T> configurator)
     where T : class, ISaga
 {
     configurator.RegisterSingleInstance <ICloudTableProvider <TSaga> >(provider => new ConstCloudTableProvider <TSaga>(_connectionFactory(provider)));
     configurator.RegisterSingleInstance(_formatterFactory);
     configurator.RegisterSagaRepository <T, DatabaseContext <T>, SagaConsumeContextFactory <DatabaseContext <T>, T>,
                                          AzureTableSagaRepositoryContextFactory <T> >();
 }
Esempio n. 6
0
        public void Register(ISagaRepositoryRegistrationConfigurator <TSaga> configurator)
        {
            DatabaseContext <TSaga> DatabaseContextFactory(IConfigurationServiceProvider provider)
            {
                var client = new CosmosClient(EndpointUri, Key, new CosmosClientOptions {
                    Serializer = new CosmosJsonDotNetSerializer(_serializerSettings)
                });
                var collectionIdFormatter = _collectionIdFormatter(provider);
                var container             = client.GetContainer(DatabaseId, collectionIdFormatter.Saga <TSaga>());

                return(new CosmosDatabaseContext <TSaga>(client, container, _itemRequestOptions, _queryRequestOptions));
            }

            configurator.RegisterSingleInstance(DatabaseContextFactory);

            configurator.RegisterSagaRepository <TSaga, DatabaseContext <TSaga>, SagaConsumeContextFactory <DatabaseContext <TSaga>, TSaga>,
                                                 CosmosSagaRepositoryContextFactory <TSaga> >();
        }
        public void Register(ISagaRepositoryRegistrationConfigurator <TSaga> configurator)
        {
            DatabaseContext <TSaga> DatabaseContextFactory(IConfigurationServiceProvider provider)
            {
                bool         providerProvidedClient = true;
                CosmosClient client;

                if (!string.IsNullOrWhiteSpace(_clientName))
                {
                    var clientFactory = provider.GetRequiredService <ICosmosClientFactory>();
                    client = clientFactory.GetCosmosClient(_clientName, _serializerSettings);
                }
                else
                {
                    providerProvidedClient = false;

                    CosmosClientOptions clientOptions = null;
                    if (_serializerSettings != null)
                    {
                        clientOptions = new CosmosClientOptions {
                            Serializer = new CosmosJsonDotNetSerializer(_serializerSettings)
                        };
                    }

                    client = new CosmosClient(EndpointUri, Key, clientOptions);
                }

                var collectionIdFormatter = _collectionIdFormatter(provider);
                var container             = client.GetContainer(DatabaseId, collectionIdFormatter.Saga <TSaga>());

                // The provider owns the instance of the client, so the lifetime should be controlled by the provider,
                // not this class.
                return(new CosmosDatabaseContext <TSaga>(providerProvidedClient ? null : client, container, _itemRequestOptions, _queryRequestOptions));
            }

            configurator.RegisterSingleInstance(DatabaseContextFactory);

            configurator.RegisterSagaRepository <TSaga, DatabaseContext <TSaga>, SagaConsumeContextFactory <DatabaseContext <TSaga>, TSaga>,
                                                 CosmosSagaRepositoryContextFactory <TSaga> >();
        }
Esempio n. 8
0
 public void Register <T>(ISagaRepositoryRegistrationConfigurator <T> configurator)
     where T : class, ISaga
 {
     configurator.RegisterSingleInstance <IDocumentStore>(provider => DocumentStore.For(_configureOptions));
     configurator.RegisterSagaRepository <T, IDocumentSession, SagaConsumeContextFactory <IDocumentSession, T>, MartenSagaRepositoryContextFactory <T> >();
 }