Table of Contents

Class ConnectionManager

Namespace
CL.MySQL2.Services
Assembly
CL.MySQL2.dll

Manages MySQL database connections — registration, pooling, health checking, and transaction orchestration for multiple named connection IDs.

public sealed class ConnectionManager
Inheritance
ConnectionManager
Inherited Members

Constructors

ConnectionManager(ILogger?, IEventBus?)

Creates a ConnectionManager.

public ConnectionManager(ILogger? logger = null, IEventBus? events = null)

Parameters

logger ILogger

Optional logger.

events IEventBus

Optional event bus for publishing connection events.

Methods

CloseConnectionAsync(MySqlConnection)

Closes the connection and publishes a DatabaseDisconnectedEvent.

public Task CloseConnectionAsync(MySqlConnection connection)

Parameters

connection MySqlConnection

Returns

Task

ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>>, string, CancellationToken)

Opens a connection, executes the given action, closes the connection, and returns the result.

public Task<TResult> ExecuteWithConnectionAsync<TResult>(Func<MySqlConnection, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)

Parameters

action Func<MySqlConnection, Task<TResult>>
connectionId string
ct CancellationToken

Returns

Task<TResult>

Type Parameters

TResult

ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>>, string, CancellationToken)

Opens a connection, begins a transaction, executes the action, commits, and returns the result. Rolls back automatically on exception.

public Task<TResult> ExecuteWithTransactionAsync<TResult>(Func<MySqlConnection, MySqlTransaction, Task<TResult>> action, string connectionId = "Default", CancellationToken ct = default)

Parameters

action Func<MySqlConnection, MySqlTransaction, Task<TResult>>
connectionId string
ct CancellationToken

Returns

Task<TResult>

Type Parameters

TResult

GetAllConnectionCounts()

Returns a snapshot of open connection counts for all registered IDs.

public IReadOnlyDictionary<string, int> GetAllConnectionCounts()

Returns

IReadOnlyDictionary<string, int>

GetConfiguration(string)

Returns the configuration for the given connection ID, or null if not found.

public MySqlDatabaseConfig? GetConfiguration(string connectionId = "Default")

Parameters

connectionId string

Returns

MySqlDatabaseConfig

GetConnectionIds()

Returns the registered connection IDs.

public IEnumerable<string> GetConnectionIds()

Returns

IEnumerable<string>

GetConnectionString(string)

Builds the ADO.NET connection string for the given connection ID.

public string GetConnectionString(string connectionId = "Default")

Parameters

connectionId string

Returns

string

GetOpenConnectionCount(string)

Returns the current open connection count for the given connection ID.

public int GetOpenConnectionCount(string connectionId = "Default")

Parameters

connectionId string

Returns

int

GetServerInfoAsync(string, CancellationToken)

Retrieves version and database metadata from the MySQL server.

public Task<ServerInfo> GetServerInfoAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<ServerInfo>

HasConfiguration(string)

Returns true when a configuration exists for the given connection ID.

public bool HasConfiguration(string connectionId = "Default")

Parameters

connectionId string

Returns

bool

OpenConnectionAsync(string, CancellationToken)

Opens and returns a new MySqlConnector.MySqlConnection for the given connection ID. Publishes a DatabaseConnectedEvent on success.

public Task<MySqlConnection> OpenConnectionAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<MySqlConnection>

RegisterConfiguration(MySqlDatabaseConfig, string)

Registers (or replaces) a connection configuration under a given ID.

public void RegisterConfiguration(MySqlDatabaseConfig config, string connectionId = "Default")

Parameters

config MySqlDatabaseConfig
connectionId string

TestConnectionAsync(string, CancellationToken)

Tests connectivity for the given connection ID. Returns true on success, false on failure (does not throw).

public Task<bool> TestConnectionAsync(string connectionId = "Default", CancellationToken ct = default)

Parameters

connectionId string
ct CancellationToken

Returns

Task<bool>