using System.Configuration; using System.Data.Common; using System.Threading.Tasks; using MySql.Data.MySqlClient; namespace Sony.Filtr.Database { public static class DatabaseHandler { private static string _connectionString; private static string _connectionStringReadOnly; private static string GetConnectionString() { if (string.IsNullOrEmpty(_connectionString)) _connectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString; return _connectionString; } private static string GetConnectionStringReadOnly() { if (string.IsNullOrEmpty(_connectionStringReadOnly)) _connectionStringReadOnly = ConfigurationManager.ConnectionStrings["dbReadOnly"].ConnectionString; return _connectionStringReadOnly; } public static MySqlConnection GetOpenConnection() { var connection = new MySqlConnection(GetConnectionString()); connection.Open(); return connection; } public static async Task GetOpenConnectionAsync() { var connection = new MySqlConnection(GetConnectionString()); await connection.OpenAsync(); return connection; } public static MySqlConnection GetOpenReadOnlyConnection() { var connection = new MySqlConnection(GetConnectionStringReadOnly()); connection.Open(); return connection; } public static async Task GetOpenReadOnlyConnectionAsync() { var connection = new MySqlConnection(GetConnectionStringReadOnly()); await connection.OpenAsync(); return connection; } } }