oi-metrology/Server/Services/SQLDbConnectionFactory.cs

30 lines
922 B
C#

using OI.Metrology.Server.Models;
using OI.Metrology.Shared.Repositories;
using System.Data.Common;
using System.Data.SqlClient;
#pragma warning disable CS8600, CS8602, CS8603, CS8604, CS8625
namespace OI.Metrology.Server.Services;
public class SQLDbConnectionFactory : IDbConnectionFactory
{
private readonly AppSettings _AppSettings;
public SQLDbConnectionFactory(AppSettings appSettings) => _AppSettings = appSettings;
public DbConnection GetDbConnection()
{
DbProviderFactories.RegisterFactory(
typeof(SqlConnection).Namespace,
SqlClientFactory.Instance);
if (string.IsNullOrEmpty(_AppSettings.ConnectionString))
throw new Exception("Connection string is missing");
DbConnection c = SqlClientFactory.Instance.CreateConnection();
c.ConnectionString = _AppSettings.ConnectionString;
c.Open();
return c;
}
}