BotSharp/src/Plugins/BotSharp.Plugin.ExcelHandler/Helpers/Sqlite/SqliteDbHelpers.cs

42 lines
1.2 KiB
C#
Raw Normal View History

2024-11-20 08:24:26 +00:00
using BotSharp.Plugin.SqlDriver.Settings;
2024-09-26 20:34:16 +00:00
using Microsoft.Data.Sqlite;
2024-10-02 21:20:34 +00:00
namespace BotSharp.Plugin.ExcelHandler.Helpers.Sqlite;
2024-09-26 20:34:16 +00:00
2024-10-02 21:20:34 +00:00
public class SqliteDbHelpers : ISqliteDbHelpers
2024-09-26 20:34:16 +00:00
{
private string _dbFilePath = string.Empty;
private SqliteConnection inMemoryDbConnection = null;
private readonly IServiceProvider _services;
2024-10-02 21:20:34 +00:00
public SqliteDbHelpers(IServiceProvider service)
2024-09-26 20:34:16 +00:00
{
_services = service;
}
public SqliteConnection GetInMemoryDbConnection()
{
if (inMemoryDbConnection == null)
{
inMemoryDbConnection = new SqliteConnection("Data Source=:memory:;Mode=ReadWrite");
inMemoryDbConnection.Open();
return inMemoryDbConnection;
}
return inMemoryDbConnection;
}
public SqliteConnection GetPhysicalDbConnection()
{
if (string.IsNullOrEmpty(_dbFilePath))
{
var settingService = _services.GetRequiredService<SqlDriverSetting>();
_dbFilePath = settingService.SqlLiteConnectionString;
}
var dbConnection = new SqliteConnection($"Data Source={_dbFilePath};Mode=ReadWrite");
dbConnection.Open();
return dbConnection;
}
}