Compare commits

..

2 Commits

Author SHA1 Message Date
Eduardo Leonardo
04c4de9a31 Merge 53fadf564d into 10a4691429 2025-10-29 18:32:50 +00:00
Eduardo Leonardo Rosa da Silva
53fadf564d Fix: Factory patten when opening connection mysql 2025-10-29 15:32:42 -03:00
2 changed files with 168 additions and 167 deletions

View File

@@ -4,17 +4,18 @@ namespace WeaponPaints
{
public class Database
{
private readonly IDatabaseConnection _connection;
private readonly Func<IDatabaseConnection> _connectionFactory;
public Database(IDatabaseConnection connection)
public Database(Func<IDatabaseConnection> connectionFactory)
{
_connection = connection;
_connectionFactory = connectionFactory;
}
public async Task<IDatabaseConnection> GetConnectionAsync()
{
await _connection.OpenAsync();
return _connection;
var connection = _connectionFactory();
await connection.OpenAsync();
return connection;
}
}
}

View File

@@ -113,8 +113,8 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
return;
}
// Criar conexão baseada no tipo de banco
IDatabaseConnection connection;
// Criar factory de conexão baseada no tipo de banco
Func<IDatabaseConnection> connectionFactory;
if (config.DatabaseType.ToLower() == "mysql")
{
var builder = new MySqlConnectionStringBuilder
@@ -127,7 +127,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
Pooling = true,
MaximumPoolSize = 640,
};
connection = new MySQLConnection(builder.ConnectionString, Logger);
connectionFactory = () => new MySQLConnection(builder.ConnectionString, Logger);
}
else // SQLite
{
@@ -142,10 +142,10 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
var connectionString = $"Data Source={dbPath}";
Logger.LogInformation($"[WeaponPaints] SQLite database path: {dbPath}");
connection = new SQLiteConnection(connectionString, Logger);
connectionFactory = () => new SQLiteConnection(connectionString, Logger);
}
Database = new Database(connection);
Database = new Database(connectionFactory);
Utility.Config = config;
Task.Run(async () => await Utility.CheckDatabaseTables());