using Microsoft.Data.Sqlite; using Microsoft.Extensions.Options; using MxGateway.Server.Configuration; namespace MxGateway.Server.Security.Authentication; public sealed class AuthSqliteConnectionFactory(IOptions 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()); } }