From 20b6b328f530d41116b4d003cb7d18a99708331c Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 25 Aug 2025 15:32:48 +0200 Subject: [PATCH] =?UTF-8?q?feat(EGDbContext):=20Eindeutige=20Indizes=20und?= =?UTF-8?q?=20Beziehungen=20f=C3=BCr=20die=20Entit=C3=A4ten=20=E2=80=9EEnv?= =?UTF-8?q?elope=E2=80=9C,=20=E2=80=9EReceiver=E2=80=9C=20und=20=E2=80=9ED?= =?UTF-8?q?ocumentStatus=E2=80=9C=20hinzuf=C3=BCgen=20-=20Eindeutiger=20In?= =?UTF-8?q?dex=20f=C3=BCr=20=E2=80=9EEnvelope.Uuid=E2=80=9C=20hinzugef?= =?UTF-8?q?=C3=BCgt=20-=20Eindeutige=20Indizes=20f=C3=BCr=20=E2=80=9ERecei?= =?UTF-8?q?ver.Signature=E2=80=9C=20und=20=E2=80=9EReceiver.EmailAddress?= =?UTF-8?q?=E2=80=9C=20hinzugef=C3=BCgt=20-=20Beziehungen=20von=20?= =?UTF-8?q?=E2=80=9EDocumentStatus=E2=80=9C=20zu=20=E2=80=9EEnvelope.Uuid?= =?UTF-8?q?=E2=80=9C=20und=20=E2=80=9EReceiver=E2=80=9C=20(Signature=20und?= =?UTF-8?q?=20EmailAddress)=20konfiguriert=20-=20Entit=C3=A4tsbeschr=C3=A4?= =?UTF-8?q?nkungen=20f=C3=BCr=20die=20Datenintegrit=C3=A4t=20verbessert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EGDbContext.cs | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/EnvelopeGenerator.Infrastructure/EGDbContext.cs b/EnvelopeGenerator.Infrastructure/EGDbContext.cs index ebdde7fe..c8a370f3 100644 --- a/EnvelopeGenerator.Infrastructure/EGDbContext.cs +++ b/EnvelopeGenerator.Infrastructure/EGDbContext.cs @@ -97,10 +97,17 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext modelBuilder.Entity(); modelBuilder.Entity(); modelBuilder.Entity(); - modelBuilder.Entity(); + modelBuilder.Entity() + .HasIndex(e => e.Uuid) + .IsUnique(); modelBuilder.Entity(); modelBuilder.Entity(); - modelBuilder.Entity(); + modelBuilder.Entity() + .HasIndex(e => e.Signature) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(e => e.EmailAddress) + .IsUnique(); modelBuilder.Entity(); // Configure the one-to-many relationship of Envelope @@ -145,6 +152,24 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext .HasForeignKey(erro => erro.AddedWho) .HasPrincipalKey(r => r.EmailAddress); + modelBuilder.Entity() + .HasOne(ds => ds.Envelope) + .WithMany() + .HasForeignKey(ds => ds.EnvelopeId) + .HasPrincipalKey(e => e.Uuid); + + modelBuilder.Entity() + .HasOne(ds => ds.Receiver) + .WithMany() + .HasForeignKey(ds => ds.ReceiverId) + .HasPrincipalKey(e => e.Signature); + + modelBuilder.Entity() + .HasOne(ds => ds.Receiver) + .WithMany() + .HasForeignKey(ds => ds.ReceiverId) + .HasPrincipalKey(e => e.EmailAddress); + // Configure entities to handle database triggers void AddTrigger() where T : class => _triggers .Where(t => t.Key == typeof(T).Name)