public MySqlStateEntitySaver( BatchOperator <StateEntity> .Factory batchOperatorFactory, IClaptrapIdentity identity, IDbFactory dbFactory, IRelationalStateStoreLocatorOptions options, ISqlTemplateCache sqlTemplateCache, IBatchOperatorContainer batchOperatorContainer) { var locator = options.RelationalStateStoreLocator; _connectionName = locator.GetConnectionName(identity); _schemaName = locator.GetSchemaName(identity); _tableName = locator.GetStateTableName(identity); _sqlTemplateCache = sqlTemplateCache; var operatorKey = new BatchOperatorKey() .With(nameof(MySqlStateEntitySaver)) .With(_connectionName) .With(_tableName); _batchOperator = (IBatchOperator <StateEntity>)batchOperatorContainer.GetOrAdd( operatorKey, () => batchOperatorFactory.Invoke( new BatchOperatorOptions <StateEntity>(options) { DoManyFunc = (entities, cacheData) => SaveManyCoreMany(dbFactory, entities), })); }
public MySqlStateStoreMigration( ILogger <MySqlStateStoreMigration> logger, DbUpMigration.Factory factory, IClaptrapIdentity identity, IDbFactory dbFactory, IStorageMigrationContainer storageMigrationContainer, IRelationalStateStoreLocatorOptions options) { var locator = options.RelationalStateStoreLocator; var connectionName = locator.GetConnectionName(identity); var schemaName = locator.GetSchemaName(identity); var stateTableName = locator.GetStateTableName(identity); var migrationOptions = new DbUpMigrationOptions( new[] { Assembly.GetExecutingAssembly() }, fileName => fileName.EndsWith("-state.sql"), new Dictionary <string, string> { { "SchemaName", schemaName }, { "StateTableName", stateTableName }, }, () => (DeployChanges .To.MySqlDatabase(dbFactory.GetConnectionString(connectionName)), null)); var migration = factory.Invoke(logger, migrationOptions); var migrationKey = $"{nameof(MySqlStateStoreMigration)}_{connectionName}_{schemaName}_{stateTableName}"; _migrationTask = storageMigrationContainer.CreateTask(migrationKey, migration); }
public PostgreSQLStateEntityLoader( IClaptrapIdentity identity, IDbFactory dbFactory, IRelationalStateStoreLocatorOptions options) { _identity = identity; _dbFactory = dbFactory; var locator = options.RelationalStateStoreLocator; var(connectionName, schemaName, stateTableName) = locator.GetNames(identity); _connectionName = connectionName; _selectSql = $"SELECT * FROM {schemaName}.{stateTableName} WHERE claptrap_type_code=@ClaptrapTypeCode AND claptrap_id=@ClaptrapId LIMIT 1"; }
public MySqlStateEntityLoader( IClaptrapIdentity identity, IDbFactory dbFactory, IRelationalStateStoreLocatorOptions options) { var locator = options.RelationalStateStoreLocator; _connectionName = locator.GetConnectionName(identity); var schemaName = locator.GetSchemaName(identity); var tableName = locator.GetStateTableName(identity); _identity = identity; _dbFactory = dbFactory; _selectSql = $"SELECT * FROM {schemaName}.{tableName} WHERE claptrap_type_code=@ClaptrapTypeCode AND claptrap_id=@ClaptrapId LIMIT 1"; }