30 lines
920 B
C#
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;
|
|
}
|
|
} |