blob: e8f8abf676a925115ea5f9b7ed998df799f02b70 (
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
|
using System.Data;
using Microsoft.Data.Sqlite;
using Microsoft.Extensions.Options;
namespace CrupestApi.Commons.Crud;
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);
}
}
|