using Microsoft.Extensions.Configuration; using OI.Metrology.Shared.Repositories; using System; using System.Data.Common; using System.Data.SqlClient; namespace OI.Metrology.Archive.Repositories; public class SQLDbConnectionFactory : IDbConnectionFactory { private IConfiguration Config { get; } public SQLDbConnectionFactory(IConfiguration config) => Config = config; public DbConnection GetDbConnection(String connStringName) { DbProviderFactories.RegisterFactory( typeof(SqlConnection).Namespace, SqlClientFactory.Instance); string connStr = Config?.GetConnectionString(connStringName); if (connStr is null) throw new Exception("Connection string is missing: " + connStringName); DbConnection c = SqlClientFactory.Instance.CreateConnection(); c.ConnectionString = connStr; c.Open(); return c; } }