aboutsummaryrefslogtreecommitdiff
path: root/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-02-19 02:05:39 +0800
committerYuqian Yang <crupest@crupest.life>2025-02-19 02:42:42 +0800
commit4c5df72057fe02257e243de37930a47425a84722 (patch)
treef782d0e85c4a784b659e0da29f0bbf4fc25fc827 /dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
parent89e31c19bb8fca91c54a73ff7a7f4e837d1dbf93 (diff)
downloadcrupest-4c5df72057fe02257e243de37930a47425a84722.tar.gz
crupest-4c5df72057fe02257e243de37930a47425a84722.tar.bz2
crupest-4c5df72057fe02257e243de37930a47425a84722.zip
chore(docker): remove crupest-api, forgejo and move dropped.
Diffstat (limited to 'dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs')
-rw-r--r--dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs75
1 files changed, 0 insertions, 75 deletions
diff --git a/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs b/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
deleted file mode 100644
index 701622c..0000000
--- a/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/DbConnectionFactory.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System.Data;
-using Microsoft.Data.Sqlite;
-using Microsoft.Extensions.Options;
-
-namespace CrupestApi.Commons.Crud;
-
-public interface IDbConnectionFactory
-{
- IDbConnection Get(string? name = null);
- bool ShouldDisposeConnection { get; }
-}
-
-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();
-
- var connection = new SqliteConnection(connectionString);
- connection.Open();
- return connection;
- }
-
- public bool ShouldDisposeConnection => true;
-}
-
-public class SqliteMemoryConnectionFactory : IDbConnectionFactory, IDisposable
-{
- private readonly Dictionary<string, IDbConnection> _connections = new();
-
- public IDbConnection Get(string? name = null)
- {
- name = name ?? "crupest-api";
-
- if (_connections.TryGetValue(name, out var connection))
- {
- return connection;
- }
- else
- {
- var connectionString = new SqliteConnectionStringBuilder()
- {
- DataSource = ":memory:",
- Mode = SqliteOpenMode.ReadWriteCreate
- }.ToString();
-
- connection = new SqliteConnection(connectionString);
- _connections.Add(name, connection);
- connection.Open();
- return connection;
- }
- }
-
- public bool ShouldDisposeConnection => false;
-
-
- public void Dispose()
- {
- foreach (var connection in _connections.Values)
- {
- connection.Dispose();
- }
- }
-}