28 lines
777 B
C#
28 lines
777 B
C#
using Microsoft.Data.Sqlite;
|
|
using Microsoft.Extensions.Options;
|
|
using MxGateway.Server.Configuration;
|
|
|
|
namespace MxGateway.Server.Security.Authentication;
|
|
|
|
public sealed class AuthSqliteConnectionFactory(IOptions<GatewayOptions> options)
|
|
{
|
|
public SqliteConnection CreateConnection()
|
|
{
|
|
string sqlitePath = options.Value.Authentication.SqlitePath;
|
|
string? directory = Path.GetDirectoryName(sqlitePath);
|
|
|
|
if (!string.IsNullOrWhiteSpace(directory))
|
|
{
|
|
Directory.CreateDirectory(directory);
|
|
}
|
|
|
|
SqliteConnectionStringBuilder builder = new()
|
|
{
|
|
DataSource = sqlitePath,
|
|
Mode = SqliteOpenMode.ReadWriteCreate
|
|
};
|
|
|
|
return new SqliteConnection(builder.ToString());
|
|
}
|
|
}
|