Ejemplo n.º 1
0
        public async Task CreateTestTable()
        {
            sut = new SqlMigration(connectionString);
            var connectionStringWithoutDatabase = new SqlConnectionStringBuilder(connectionString)
            {
                InitialCatalog = string.Empty
            }.ConnectionString;

            await using var sqlConnection = new SqlConnection(connectionStringWithoutDatabase);
            await sqlConnection.OpenAsync();

            try
            {
                await sqlConnection.ChangeDatabaseAsync(DatabaseName);
            }
            catch
            {
                await using var createDatabaseCommand = new SqlCommand($"CREATE DATABASE {DatabaseName}", sqlConnection);
                await createDatabaseCommand.ExecuteNonQueryAsync();

                await sqlConnection.ChangeDatabaseAsync(DatabaseName);
            }

            if (!await sut.TableExistsAsync(TableName))
            {
                var createTableCommandText = $"CREATE TABLE [{TableName}] ("
                                             + $"[{nameof(TestDataEntry.Id)}] INT NOT NULL PRIMARY KEY, "
                                             + $"[{nameof(TestDataEntry.Comment)}] VARCHAR(MAX) NULL, "
                                             + $"[{nameof(TestDataEntry.DoubleValue)}] DECIMAL(18, 2) NOT NULL,"
                                             + "NotUsed INT NULL)";
                await using var createTableCommand = new SqlCommand(createTableCommandText, sqlConnection);
                await createTableCommand.ExecuteNonQueryAsync();
            }
        }
Ejemplo n.º 2
0
        public SqlDataService(SqlDataServiceTarget target)
        {
            if (target.DataSource != "dkhoeinnsql01")
            {
                throw new ArgumentOutOfRangeException(nameof(target.DataSource), $"SQL data source '{target.DataSource}' is currently not supported");
            }
            if (target.DatabaseName != "PowerBiData")
            {
                throw new ArgumentOutOfRangeException(nameof(target.DatabaseName), $"SQL database '{target.DatabaseName}' on {target.DataSource} is currently not supported");
            }
            this.target = target;
            tablePath   = GetTablePath(target);
            var sqlConnectionString = new SqlConnectionStringBuilder
            {
                DataSource         = target.DataSource,
                InitialCatalog     = target.DatabaseName,
                IntegratedSecurity = false,
                UserID             = target.Username,
                Password           = Secrets.Get($"DataService_Sql_Password_{target.Username.ToLowerInvariant()}")
            }.ConnectionString;

            sqlMigration          = new SqlMigration(sqlConnectionString);
            keyValuePairExtractor = new KeyValuePairExtractor();
        }