refactor(dbcontext): add NET/NETFRAMEWORK conditional compilation

- Wrapped `using` directives with `#if NET` and `#elif NETFRAMEWORK`
- Applied conditional inheritance for `IUserManagerDbContext` and `IMailDbContext`
- Made `EmailOut` DbSet and triggers only available in `NET` builds
- Adjusted `_logger` nullability for NET vs NETFRAMEWORK targets
- Ensured `modelBuilder.ConfigureUserManager()` only runs in NET builds
This commit is contained in:
tekh 2025-10-01 11:17:27 +02:00
parent 9c867ac8aa
commit ca24afe3c6

View File

@ -1,18 +1,26 @@
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using DigitalData.UserManager.Domain.Entities;
using DigitalData.UserManager.Domain.Entities;
using DigitalData.UserManager.Infrastructure;
using DigitalData.UserManager.Infrastructure.Contracts;
using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Domain.Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Group = DigitalData.UserManager.Domain.Entities.Group; using Group = DigitalData.UserManager.Domain.Entities.Group;
using Module = DigitalData.UserManager.Domain.Entities.Module; using Module = DigitalData.UserManager.Domain.Entities.Module;
using DigitalData.EmailProfilerDispatcher;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using DigitalData.Core.Client;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
#if NET
using DigitalData.EmailProfilerDispatcher;
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
using DigitalData.UserManager.Infrastructure;
using DigitalData.UserManager.Infrastructure.Contracts;
using DigitalData.Core.Client;
using EnvelopeGenerator.Application.Common.Configurations; using EnvelopeGenerator.Application.Common.Configurations;
#elif NETFRAMEWORK
#endif
namespace EnvelopeGenerator.Infrastructure; namespace EnvelopeGenerator.Infrastructure
#if NET
;
#elif NETFRAMEWORK
{
#endif
public class EGDbContext : EGDbContextBase public class EGDbContext : EGDbContextBase
{ {
@ -22,7 +30,10 @@ public class EGDbContext : EGDbContextBase
} }
//TODO: Adding EmailOut instead of EmailOut.Abst is not correct for the arch. Re-design EmailPut consedering this. IMailDbContext shoud move to Abstraction layer (hint: in this case using DBSet in abst. will be problem because entity framework will have to be added. //TODO: Adding EmailOut instead of EmailOut.Abst is not correct for the arch. Re-design EmailPut consedering this. IMailDbContext shoud move to Abstraction layer (hint: in this case using DBSet in abst. will be problem because entity framework will have to be added.
public abstract class EGDbContextBase : DbContext, IUserManagerDbContext, IMailDbContext public abstract class EGDbContextBase : DbContext
#if NET
, IUserManagerDbContext, IMailDbContext
#endif
{ {
public DbSet<Config> Configs { get; set; } public DbSet<Config> Configs { get; set; }
@ -56,7 +67,9 @@ public abstract class EGDbContextBase : DbContext, IUserManagerDbContext, IMailD
public DbSet<UserRep> UserReps { get; set; } public DbSet<UserRep> UserReps { get; set; }
#if NET
public DbSet<EmailOut> EMailOuts { get; set; } public DbSet<EmailOut> EMailOuts { get; set; }
#endif
public DbSet<EnvelopeReceiverReadOnly> EnvelopeReceiverReadOnlys { get; set; } public DbSet<EnvelopeReceiverReadOnly> EnvelopeReceiverReadOnlys { get; set; }
@ -64,7 +77,11 @@ public abstract class EGDbContextBase : DbContext, IUserManagerDbContext, IMailD
private readonly DbTriggerParams _triggers; private readonly DbTriggerParams _triggers;
private readonly ILogger? _logger; private readonly ILogger
#if NET
?
#endif
_logger;
public bool IsMigration { get; set; } = false; public bool IsMigration { get; set; } = false;
@ -89,7 +106,9 @@ public abstract class EGDbContextBase : DbContext, IUserManagerDbContext, IMailD
Modules = Set<Module>(); Modules = Set<Module>();
Users = Set<User>(); Users = Set<User>();
UserReps = Set<UserRep>(); UserReps = Set<UserRep>();
#if NET
EMailOuts = Set<EmailOut>(); EMailOuts = Set<EmailOut>();
#endif
EnvelopeReceiverReadOnlys = Set<EnvelopeReceiverReadOnly>(); EnvelopeReceiverReadOnlys = Set<EnvelopeReceiverReadOnly>();
} }
@ -210,12 +229,20 @@ public abstract class EGDbContextBase : DbContext, IUserManagerDbContext, IMailD
AddTrigger<EnvelopeReceiverReadOnly>(); AddTrigger<EnvelopeReceiverReadOnly>();
AddTrigger<EnvelopeType>(); AddTrigger<EnvelopeType>();
AddTrigger<Receiver>(); AddTrigger<Receiver>();
#if NET
AddTrigger<EmailOut>(); AddTrigger<EmailOut>();
#endif
#endregion Trigger #endregion Trigger
//configure model builder for user manager tables //configure model builder for user manager tables
#if NET
modelBuilder.ConfigureUserManager(); modelBuilder.ConfigureUserManager();
#endif
base.OnModelCreating(modelBuilder); base.OnModelCreating(modelBuilder);
} }
} }
#if NETFRAMEWORK
}
#endif