blob: 2ee01ca06f621855ed1ff3c079a1fb0b71473577 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
using System.Data;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Options;
namespace CrupestApi.Commons.Crud;
// TODO: Implement and register this service.
public interface IDbConnectionFactory
{
IDbConnection Get(string? name = null);
}
public class SqliteConnectionFactory : IDbConnectionFactory
{
private readonly IOptionsMonitor<CrupestApiConfig> _apiConfigMonitor;
public SqliteConnectionFactory(IOptionsMonitor<CrupestApiConfig> apiConfigMonitor)
{
_apiConfigMonitor = apiConfigMonitor;
}
public IDbConnection Get(string? name = null)
{
var connectionString = new SqliteConnectionStringBuilder()
{
DataSource = Path.Combine(_apiConfigMonitor.CurrentValue.DataDir, $"{name ?? "crupest-api"}.db"),
Mode = SqliteOpenMode.ReadWriteCreate
}.ToString();
return new SqliteConnection(connectionString);
}
}
|