From 4997f7d75cd3d81fdddb4c3dfd6faece018f4aab Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 4 Nov 2025 13:44:39 +0100 Subject: [PATCH] feat: add in-memory database support via appsettings UseInMemoryDb flag - Introduced conditional EF Core configuration to support InMemoryDatabase for testing or lightweight runs. - Added `UseInMemoryDb` config flag read from appsettings. - Retained SQL Server as the default when the flag is false. - Added missing Quartz namespace import. --- .../EnvelopeGenerator.Finalizer.csproj | 3 +++ EnvelopeGenerator.Finalizer/Program.cs | 6 ++++-- EnvelopeGenerator.Finalizer/appsettings.Database.json | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj b/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj index 40c1c511..5abe0cc6 100644 --- a/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj +++ b/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj @@ -8,8 +8,11 @@ + + + diff --git a/EnvelopeGenerator.Finalizer/Program.cs b/EnvelopeGenerator.Finalizer/Program.cs index e98c7e0d..5cc1115c 100644 --- a/EnvelopeGenerator.Finalizer/Program.cs +++ b/EnvelopeGenerator.Finalizer/Program.cs @@ -6,6 +6,7 @@ using EnvelopeGenerator.Infrastructure; using MediatR; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Options; +using Quartz; using Serilog; // Load Serilog from appsettings.json @@ -58,8 +59,9 @@ try opt.AddDbContext((provider, options) => { var logger = provider.GetRequiredService>(); - options.UseSqlServer(connStr) - .LogTo(log => logger.LogInformation("{log}", log), LogLevel.Trace) + var useInMemoryDb = config.GetValue("UseInMemoryDb"); + var dbCtxOpt = useInMemoryDb ? options.UseInMemoryDatabase("EGInMemoryDb") : options.UseSqlServer(connStr); + dbCtxOpt.LogTo(log => logger.LogInformation("{log}", log), LogLevel.Trace) .EnableSensitiveDataLogging() .EnableDetailedErrors(); }); diff --git a/EnvelopeGenerator.Finalizer/appsettings.Database.json b/EnvelopeGenerator.Finalizer/appsettings.Database.json index 4124b453..c6c9cdfc 100644 --- a/EnvelopeGenerator.Finalizer/appsettings.Database.json +++ b/EnvelopeGenerator.Finalizer/appsettings.Database.json @@ -17,5 +17,6 @@ "EnvelopeReceiverReadOnly": [ "TBSIG_ENVELOPE_RECEIVER_READ_ONLY_UPD" ], "Receiver": [], "EmailTemplate": [ "TBSIG_EMAIL_TEMPLATE_AFT_UPD" ] - } + }, + "UseInMemoryDb": true } \ No newline at end of file