private async Task Initialize() { if (!_instance.IsRunning) { _manager.Start(); } using (var connection = _instance.CreateConnection()) { await connection.OpenAsync(); var tempPath = Environment.GetEnvironmentVariable("Temp"); var createDatabase = $"CREATE DATABASE [{_databaseName}] on (name='{_databaseName}', " + $"filename='{tempPath}\\{_databaseName}.mdf')"; using (var command = new SqlCommand(createDatabase, connection)) { await command.ExecuteNonQueryAsync(); } } var sqlConnectionStringBuilder = _instance.CreateConnectionStringBuilder(); sqlConnectionStringBuilder.InitialCatalog = _databaseName; ConnectionString = sqlConnectionStringBuilder.ToString(); var settings = new MsSqlStreamStoreV3Settings(ConnectionString); _msSqlStreamStoreV3 = new MsSqlStreamStoreV3(settings); await _msSqlStreamStoreV3.CreateSchema(); }
private static async Task <IStreamStore> CreateMssqlStreamStore( string connectionString, string schema, CancellationToken cancellationToken) { var connectionStringBuilder = new SqlConnectionStringBuilder(connectionString); using (var connection = new SqlConnection(new SqlConnectionStringBuilder(connectionString) { InitialCatalog = "master" }.ConnectionString)) { await connection.OpenAsync(cancellationToken).NotOnCapturedContext(); using (var command = new SqlCommand( $@" IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'{connectionStringBuilder.InitialCatalog}') BEGIN CREATE DATABASE [{connectionStringBuilder.InitialCatalog}] END; ", connection)) { await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext(); } } var settings = new MsSqlStreamStoreV3Settings(connectionString); if (schema != null) { settings.Schema = schema; } var streamStore = new MsSqlStreamStoreV3(settings); await streamStore.CreateSchema(cancellationToken); return(streamStore); }