oi-metrology/Archive/Repositories/SQLDbConnectionFactory.cs
2022-07-26 09:34:09 -07:00

30 lines
920 B
C#

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;
}
}