public static MySqlConnectionSettings GetSettings(DbConnection connection) { var csb = new MySqlConnectionStringBuilder(connection.ConnectionString); var settingsCsb = _settingsCsb(csb); return(Settings.GetOrAdd(settingsCsb.ConnectionString, key => { var opened = false; if (connection.State == ConnectionState.Closed) { connection.Open(); opened = true; } try { var version = ServerVersion.ParseVersion(connection.ServerVersion); var connectionSettings = new MySqlConnectionSettings(settingsCsb, version); return connectionSettings; } finally { if (opened) { connection.Close(); } } })); }
public static MySqlConnectionSettings GetSettings(DbConnection connection, MySqlRetryNoDependendiciesExecutionStrategy mySqlRetryNoDependendiciesExecutionStrategy) { var csb = new MySqlConnectionStringBuilder(connection.ConnectionString); var settingsCsb = _settingsCsb(csb); return(Settings.GetOrAdd(settingsCsb.ConnectionString, key => { var opened = false; if (connection.State == ConnectionState.Closed) { mySqlRetryNoDependendiciesExecutionStrategy.Execute(() => { connection.Open(); }); opened = true; } try { var version = new ServerVersion(connection.ServerVersion); var connectionSettings = new MySqlConnectionSettings(settingsCsb, version); return connectionSettings; } finally { if (opened) { connection.Close(); } } })); }