public InsertValuesMySqlEventEntitySaver( ChannelBatchOperator <EventEntity> .Factory batchOperatorFactory, IClaptrapIdentity identity, IDbFactory dbFactory, IMySqlEventStoreOptions options, IBatchOperatorContainer batchOperatorContainer, ISqlTemplateCache sqlTemplateCache) { var locator = options.RelationalEventStoreLocator; _connectionName = locator.GetConnectionName(identity); _schemaName = locator.GetSchemaName(identity); _eventTableName = locator.GetEventTableName(identity); _dbFactory = dbFactory; _sqlTemplateCache = sqlTemplateCache; var operatorKey = new BatchOperatorKey() .With(nameof(InsertValuesMySqlEventEntitySaver)) .With(_connectionName) .With(_schemaName) .With(_eventTableName); _batchOperator = (IBatchOperator <EventEntity>)batchOperatorContainer.GetOrAdd( operatorKey, () => batchOperatorFactory.Invoke( new BatchOperatorOptions <EventEntity>(options) { DoManyFunc = (entities, cacheData) => SaveManyAsync(entities), DoManyFuncName = $"event batch saver for {operatorKey.AsStringKey()}" })); }
public PostgreSQLEventEntitySaver( ChannelBatchOperator <EventEntity> .Factory batchOperatorFactory, IMasterOrSelfIdentity identity, IDbFactory dbFactory, IPostgreSQLEventStoreOptions options, IBatchOperatorContainer batchOperatorContainer) { _dbFactory = dbFactory; var(connectionName, schemaName, eventTableName) = options.RelationalEventStoreLocator.GetNames(identity.Identity); _connectionName = connectionName; _schemaName = schemaName; _eventTableName = eventTableName; var operatorKey = new BatchOperatorKey() .With(nameof(PostgreSQLEventEntitySaver)) .With(_connectionName) .With(_schemaName) .With(_eventTableName); _batchOperator = (IBatchOperator <EventEntity>)batchOperatorContainer.GetOrAdd( operatorKey, () => batchOperatorFactory.Invoke( new BatchOperatorOptions <EventEntity>(options) { DoManyFunc = (entities, cacheData) => SaveManyAsync(entities), DoManyFuncName = $"event batch saver for {operatorKey.AsStringKey()}" })); }
public MongoDBEventEntitySaver( IMongoDBEventStoreOptions options, ChannelBatchOperator <EventEntity> .Factory batchOperatorFactory, IDbFactory dbFactory, IClaptrapIdentity identity, IBatchOperatorContainer batchOperatorContainer) { _dbFactory = dbFactory; var locator = options.MongoDBEventStoreLocator; _connectionName = locator.GetConnectionName(identity); _databaseName = locator.GetDatabaseName(identity); _eventCollectionName = locator.GetEventCollectionName(identity); var operatorKey = new BatchOperatorKey() .With(nameof(MongoDBEventEntitySaver)) .With(_connectionName) .With(_databaseName) .With(_eventCollectionName); _batchOperator = (IBatchOperator <EventEntity>)batchOperatorContainer.GetOrAdd( operatorKey, () => batchOperatorFactory.Invoke( new BatchOperatorOptions <EventEntity>(options) { DoManyFunc = (entities, cacheData) => SaveManyAsync(entities), DoManyFuncName = $"event batch saver for {operatorKey.AsStringKey()}" })); }