diff --git a/EnvelopeGenerator.Application/Configurations/DbTriggerParams.cs b/EnvelopeGenerator.Application/Configurations/DbTriggerParams.cs
index 1afac966..bee12085 100644
--- a/EnvelopeGenerator.Application/Configurations/DbTriggerParams.cs
+++ b/EnvelopeGenerator.Application/Configurations/DbTriggerParams.cs
@@ -3,6 +3,6 @@
///
///
///
-public class DbTriggerParams : Dictionary>
+public class DbTriggerParams : Dictionary>
{
}
\ No newline at end of file
diff --git a/EnvelopeGenerator.GeneratorAPI/EnvelopeGenerator.GeneratorAPI.csproj b/EnvelopeGenerator.GeneratorAPI/EnvelopeGenerator.GeneratorAPI.csproj
index c5b1398d..60af0f1f 100644
--- a/EnvelopeGenerator.GeneratorAPI/EnvelopeGenerator.GeneratorAPI.csproj
+++ b/EnvelopeGenerator.GeneratorAPI/EnvelopeGenerator.GeneratorAPI.csproj
@@ -22,7 +22,7 @@
-
+
diff --git a/EnvelopeGenerator.Infrastructure/EGDbContext.cs b/EnvelopeGenerator.Infrastructure/EGDbContext.cs
index 177143d4..59d6306a 100644
--- a/EnvelopeGenerator.Infrastructure/EGDbContext.cs
+++ b/EnvelopeGenerator.Infrastructure/EGDbContext.cs
@@ -59,9 +59,9 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
private readonly DbTriggerParams _triggers;
- private readonly ILogger _logger;
+ private readonly ILogger? _logger;
- public EGDbContext(DbContextOptions options, IOptions triggerParamOptions, ILogger logger) : base(options)
+ public EGDbContext(DbContextOptions options, IOptions triggerParamOptions, ILogger? logger = null) : base(options)
{
_triggers = triggerParamOptions.Value;
_logger = logger;
@@ -151,7 +151,7 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
.ForEach(tName =>
{
modelBuilder.Entity().ToTable(tb => tb.HasTrigger(tName));
- _logger.LogInformation("Trigger '{triggerName}' has been added to the '{entityName}' entity.", tName, typeof(T).Name);
+ _logger?.LogInformation("Trigger '{triggerName}' has been added to the '{entityName}' entity.", tName, typeof(T).Name);
});
// TODO: call add trigger methods with attributes and reflection
diff --git a/EnvelopeGenerator.Infrastructure/EGDbContextFactory.cs b/EnvelopeGenerator.Infrastructure/EGDbContextFactory.cs
new file mode 100644
index 00000000..da55e888
--- /dev/null
+++ b/EnvelopeGenerator.Infrastructure/EGDbContextFactory.cs
@@ -0,0 +1,44 @@
+using EnvelopeGenerator.Application.Configurations;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Design;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Options;
+
+namespace EnvelopeGenerator.Infrastructure
+{
+ public class EGDbContextFactory : IDesignTimeDbContextFactory
+ {
+ public EGDbContext CreateDbContext(string[] args)
+ {
+ var config = new ConfigurationBuilder()
+ .SetBasePath(Directory.GetCurrentDirectory()) // Önemli!
+ .AddJsonFile("appsettings.migration.json")
+ .Build();
+
+ // create DbContextOptions
+ var optionsBuilder = new DbContextOptionsBuilder();
+ optionsBuilder.UseSqlServer(config.GetConnectionString("Default"));
+
+ // create DbTriggerParams
+ var triggerLists = config.GetSection("DbTriggerParams").Get>>();
+ var dbTriggerParams = new DbTriggerParams();
+ if(triggerLists is not null)
+ foreach (var triggerList in triggerLists)
+ {
+ if(triggerList.Value.Count == 0)
+ continue; // Skip empty trigger lists
+
+ var tableName = triggerList.Key;
+
+ dbTriggerParams[tableName] = new List();
+
+ foreach (var trigger in triggerList.Value)
+ {
+ dbTriggerParams[tableName].Add(trigger);
+ }
+ }
+
+ return new EGDbContext(optionsBuilder.Options, Options.Create(dbTriggerParams));
+ }
+ }
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj b/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj
index f8273018..e91ac650 100644
--- a/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj
+++ b/EnvelopeGenerator.Infrastructure/EnvelopeGenerator.Infrastructure.csproj
@@ -27,6 +27,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -36,6 +37,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -45,6 +47,13 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+ PreserveNewest
+
\ No newline at end of file
diff --git a/EnvelopeGenerator.Infrastructure/appsettings.migration.json b/EnvelopeGenerator.Infrastructure/appsettings.migration.json
new file mode 100644
index 00000000..82fb23a3
--- /dev/null
+++ b/EnvelopeGenerator.Infrastructure/appsettings.migration.json
@@ -0,0 +1,13 @@
+{
+ "ConnectionStrings": {
+ "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;"
+ },
+ "DbTriggerParams": {
+ "Envelope": [ "TBSIG_ENVELOPE_HISTORY_AFT_INS" ],
+ "EnvelopeHistory": [ "TBSIG_ENVELOPE_HISTORY_AFT_INS" ],
+ "EmailOut": [ "TBEMLP_EMAIL_OUT_AFT_INS", "TBEMLP_EMAIL_OUT_AFT_UPD" ],
+ "EnvelopeReceiverReadOnly": [ "TBSIG_ENVELOPE_RECEIVER_READ_ONLY_UPD" ],
+ "Receiver": [],
+ "EmailTemplate": [ "TBSIG_EMAIL_TEMPLATE_AFT_UPD" ]
+ }
+}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
index f52b0610..765ac80c 100644
--- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
+++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
@@ -2113,7 +2113,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+