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($"db:mariaDbServer"); builder.Database = Configuration.GetValue($"db:mariaDbSchema"); builder.UserID = Configuration.GetValue($"db:mariaDbUser"); builder.Password = Configuration.GetValue($"db:mariaDbPassword"); builder.SslMode = MySqlSslMode.None; builder.MinimumPoolSize = 10; builder.MaximumPoolSize = uint.Parse(Configuration.GetValue($"db:mariaDbPoolSize")); builder.Pooling = true; return builder.ConnectionString; } } }