Ejemplo n.º 1
0
        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();
                    }
                }
            }));
        }
Ejemplo n.º 2
0
        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();
                    }
                }
            }));
        }