aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-09 18:22:20 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:53 +0800
commita586767b9b6e122891a8cddba57aecef11ef4bd2 (patch)
tree058f34a17aa0cff56c702ace3f84d1918e541789 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
parentbed807e3f8fab2f8b6ea3409886aac9f23f0f761 (diff)
downloadcrupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.gz
crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.bz2
crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.zip
Develop secret api. v21
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs23
1 files changed, 23 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
index 80d1b22..2ee01ca 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
@@ -1,4 +1,6 @@
using System.Data;
+using Microsoft.Data.Sqlite;
+using Microsoft.Extensions.Options;
namespace CrupestApi.Commons.Crud;
@@ -7,3 +9,24 @@ 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);
+ }
+}