Files
uWine/uWine.Core.Infrastructure/Repository/MariaDbServerRepository.cs
T
2025-07-04 07:47:07 +02:00

41 lines
1.3 KiB
C#

using Microsoft.Extensions.Configuration;
using MySqlConnector;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace uWine.Core.Infrastructure.Repository
{
public abstract class MariaDbServerRepository
{
readonly protected IConfiguration Configuration;
public MariaDbServerRepository(IConfiguration configuration)
{
Configuration = configuration;
}
protected MySqlConnection Connection()
{
return new MySqlConnection(ConnectionString());
}
string ConnectionString()
{
var builder = new MySqlConnectionStringBuilder();
builder.Server = Configuration.GetValue<string>($"db:mariaDbServer");
builder.Database = Configuration.GetValue<string>($"db:mariaDbSchema");
builder.UserID = Configuration.GetValue<string>($"db:mariaDbUser");
builder.Password = Configuration.GetValue<string>($"db:mariaDbPassword");
builder.SslMode = MySqlSslMode.None;
builder.MinimumPoolSize = 10;
builder.MaximumPoolSize = uint.Parse(Configuration.GetValue<string>($"db:mariaDbPoolSize"));
builder.Pooling = true;
return builder.ConnectionString;
}
}
}