private static string GetConnectionString(DbInstanceInfo dbInstanceInfo) { var connectionStringBuilder = new OracleConnectionStringBuilder(); connectionStringBuilder.DataSource = $"(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port={dbInstanceInfo.Port})(host={dbInstanceInfo.Host}))(connect_data=(service_name={dbInstanceInfo.ServiceName}))(security=(my_wallet_directory=\"{Path.Combine(@"C:\Users\Nandan\source\repos\terraform-agent-dbor\src\WebApp", "Oracle")}\")(ssl_server_cert_dn=\"{dbInstanceInfo.SslServerCertDn}\")))"; return(connectionStringBuilder.ConnectionString); }
/// <inheritdoc/> public Task <OracleConnection> CreateConnectionAsync(DbInstanceInfo dbInstanceInfo, CancellationToken cancellationToken = default) { if (dbInstanceInfo == null) { throw new ArgumentNullException(nameof(dbInstanceInfo)); } var connection = new OracleConnection(GetConnectionString(dbInstanceInfo), GetCredential(dbInstanceInfo)); return(OpenConnectionAsync(connection, cancellationToken)); }
/// <inheritdoc/> public Task <OracleDataReader> ExecuteReaderAsync(DbInstanceInfo dbInstanceInfo, string sql, OracleParameter[] oracleParameters, CancellationToken cancellationToken = default) { if (dbInstanceInfo == null) { throw new ArgumentNullException(nameof(dbInstanceInfo)); } if (string.IsNullOrWhiteSpace(sql)) { throw new ArgumentNullException(nameof(sql)); } return(ExecuteReaderAsyncInternal(dbInstanceInfo, sql, oracleParameters, cancellationToken)); }
/// <inheritdoc /> public async Task <IEnumerable <TableDto> > GetTablesAsync(DbInstanceInfo dbInstanceInfo, string owner, int limit, int offset, CancellationToken cancellationToken = default) { if (dbInstanceInfo == null) { throw new ArgumentNullException(nameof(dbInstanceInfo)); } using var connection = await _databaseHelper.CreateConnectionAsync(dbInstanceInfo, cancellationToken); var response = await connection.QueryAsync <TableDto>( getTablesQuery, new { owner, offset, limit }); return(response); }
/// <inheritdoc /> public async Task <TableDto> GetTableAsync(DbInstanceInfo dbInstanceInfo, string owner, string tableName, CancellationToken cancellationToken = default) { if (dbInstanceInfo == null) { throw new ArgumentNullException(nameof(dbInstanceInfo)); } using var connection = await _databaseHelper.CreateConnectionAsync(dbInstanceInfo, cancellationToken); TableDto response; response = await connection.QuerySingleOrDefaultAsync <TableDto>( getTableQuery, new { owner, tableName }); if (response == null) { throw new TableNotFoundException(dbInstanceInfo.Alias, owner, tableName); } response.Columns = ( await connection.QueryAsync <ColumnDto>( getColumnQuery, new { owner, tableName })) .ToList(); return(response); }
private static OracleCredential GetCredential(DbInstanceInfo dbInstanceInfo) { return(new OracleCredential(dbInstanceInfo.UserName, dbInstanceInfo.Password)); }
private async Task <OracleDataReader> ExecuteReaderAsyncInternal(DbInstanceInfo dbInstanceInfo, string sql, OracleParameter[] oracleParameters, CancellationToken cancellationToken = default) { using var connection = await CreateConnectionAsync(dbInstanceInfo, cancellationToken); return(await ExecuteReaderAsyncInternal(connection, sql, oracleParameters, cancellationToken)); }