@@ -3,28 +3,45 @@ namespace ServiceControl.Audit.Persistence.PostgreSQL;
33using Npgsql ;
44using System . Threading . Tasks ;
55using System . Threading ;
6- class PostgreSQLConnectionFactory ( DatabaseConfiguration databaseConfiguration )
6+ using Microsoft . Extensions . Logging ;
7+
8+ class PostgreSQLConnectionFactory
79{
8- public async Task < NpgsqlConnection > OpenConnection ( CancellationToken cancellationToken )
10+ readonly NpgsqlDataSource dataSource ;
11+ readonly NpgsqlDataSource dataSourceAdmin ;
12+
13+ public PostgreSQLConnectionFactory ( DatabaseConfiguration databaseConfiguration , ILoggerFactory loggerFactory )
914 {
10- var dataSourceBuilder = new NpgsqlDataSourceBuilder ( databaseConfiguration . ConnectionString ) ;
15+ var dataSourceBuilder = new NpgsqlDataSourceBuilder ( databaseConfiguration . ConnectionString )
16+ {
17+ Name = "ServiceControl.Audit"
18+ } ;
19+ dataSourceBuilder . UseLoggerFactory ( loggerFactory ) ;
1120 dataSourceBuilder . EnableDynamicJson ( ) ;
12- var dataSource = dataSourceBuilder . Build ( ) ;
13- var conn = dataSource . CreateConnection ( ) ;
14- await conn . OpenAsync ( cancellationToken ) ;
15- return conn ;
16- }
21+ dataSource = dataSourceBuilder . Build ( ) ;
1722
18- public async Task < NpgsqlConnection > OpenAdminConnection ( CancellationToken cancellationToken )
19- {
2023 var builder = new NpgsqlConnectionStringBuilder ( databaseConfiguration . ConnectionString )
2124 {
2225 Database = databaseConfiguration . AdminDatabaseName
2326 } ;
24- var dataSourceBuilder = new NpgsqlDataSourceBuilder ( builder . ConnectionString ) ;
25- dataSourceBuilder . EnableDynamicJson ( ) ;
26- var dataSource = dataSourceBuilder . Build ( ) ;
27- var conn = dataSource . CreateConnection ( ) ;
27+ var dataSourceBuilderAdmin = new NpgsqlDataSourceBuilder ( builder . ConnectionString )
28+ {
29+ Name = "ServiceControl.Audit-admin" ,
30+ } ;
31+ dataSourceBuilderAdmin . UseLoggerFactory ( loggerFactory ) ;
32+ dataSourceBuilderAdmin . EnableDynamicJson ( ) ;
33+ dataSourceAdmin = dataSourceBuilderAdmin . Build ( ) ;
34+ }
35+
36+ public async Task < NpgsqlConnection > OpenConnection ( CancellationToken cancellationToken )
37+ {
38+ var conn = await dataSource . OpenConnectionAsync ( cancellationToken ) ;
39+ return conn ;
40+ }
41+
42+ public async Task < NpgsqlConnection > OpenAdminConnection ( CancellationToken cancellationToken )
43+ {
44+ var conn = dataSourceAdmin . CreateConnection ( ) ;
2845 await conn . OpenAsync ( cancellationToken ) ;
2946 return conn ;
3047 }
0 commit comments