refactor(EGDbContext): split to regions
This commit is contained in:
parent
beada59593
commit
442b7f7451
@ -90,6 +90,7 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
{
|
||||
modelBuilder.Entity<Config>().HasNoKey();
|
||||
|
||||
#region EnvelopeReceiver
|
||||
modelBuilder.Entity<EnvelopeReceiver>()
|
||||
.HasKey(er => new { er.EnvelopeId, er.ReceiverId });
|
||||
|
||||
@ -102,25 +103,13 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
.HasOne(er => er.Receiver)
|
||||
.WithMany(r => r.EnvelopeReceivers)
|
||||
.HasForeignKey(er => er.ReceiverId);
|
||||
#endregion EnvelopeReceiver
|
||||
|
||||
modelBuilder.Entity<EnvelopeDocument>();
|
||||
modelBuilder.Entity<DocumentReceiverElement>();
|
||||
modelBuilder.Entity<DocumentStatus>();
|
||||
modelBuilder.Entity<EmailTemplate>();
|
||||
#region Envelope
|
||||
modelBuilder.Entity<Envelope>()
|
||||
.HasIndex(e => e.Uuid)
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<EnvelopeHistory>();
|
||||
modelBuilder.Entity<EnvelopeType>();
|
||||
modelBuilder.Entity<Receiver>()
|
||||
.HasIndex(e => e.Signature)
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<Receiver>()
|
||||
.HasIndex(e => e.EmailAddress)
|
||||
.IsUnique();
|
||||
modelBuilder.Entity<EmailOut>();
|
||||
|
||||
// Configure the one-to-many relationship of Envelope
|
||||
modelBuilder.Entity<Envelope>()
|
||||
.HasMany(e => e.Documents)
|
||||
.WithOne()
|
||||
@ -130,16 +119,31 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
.HasMany(e => e.History)
|
||||
.WithOne()
|
||||
.HasForeignKey(eh => eh.EnvelopeId);
|
||||
#endregion Envelope
|
||||
|
||||
#region Receiver
|
||||
modelBuilder.Entity<Receiver>()
|
||||
.HasIndex(e => e.Signature)
|
||||
.IsUnique();
|
||||
|
||||
modelBuilder.Entity<Receiver>()
|
||||
.HasIndex(e => e.EmailAddress)
|
||||
.IsUnique();
|
||||
#endregion Receiver
|
||||
|
||||
#region EnvelopeDocument
|
||||
modelBuilder.Entity<EnvelopeDocument>()
|
||||
.HasMany(ed => ed.Elements)
|
||||
.WithOne(e => e.Document)
|
||||
.HasForeignKey(e => e.DocumentId);
|
||||
#endregion EnvelopeDocument
|
||||
|
||||
#region DocumentReceiverElement
|
||||
modelBuilder.Entity<DocumentReceiverElement>()
|
||||
.HasOne(dre => dre.Document)
|
||||
.WithMany(ed => ed.Elements)
|
||||
.HasForeignKey(dre => dre.DocumentId);
|
||||
#endregion DocumentReceiverElement
|
||||
|
||||
if (!IsMigration)
|
||||
{
|
||||
@ -156,12 +160,15 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
.HasPrincipalKey(e => e.Email);
|
||||
}
|
||||
|
||||
#region EnvelopeReceiverReadOnly
|
||||
modelBuilder.Entity<EnvelopeReceiverReadOnly>()
|
||||
.HasOne(erro => erro.Receiver)
|
||||
.WithMany()
|
||||
.HasForeignKey(erro => erro.AddedWho)
|
||||
.HasPrincipalKey(r => r.EmailAddress);
|
||||
#endregion EnvelopeReceiverReadOnly
|
||||
|
||||
#region DocumentStatus
|
||||
modelBuilder.Entity<DocumentStatus>()
|
||||
.HasOne(ds => ds.Envelope)
|
||||
.WithMany()
|
||||
@ -176,7 +183,9 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
.HasOne(ds => ds.Receiver)
|
||||
.WithMany()
|
||||
.HasForeignKey(ds => ds.ReceiverId);
|
||||
#endregion DocumentStatus
|
||||
|
||||
#region Trigger
|
||||
// Configure entities to handle database triggers
|
||||
void AddTrigger<T>() where T : class => _triggers
|
||||
.Where(t => t.Key == typeof(T).Name)
|
||||
@ -186,7 +195,7 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
modelBuilder.Entity<T>().ToTable(tb => tb.HasTrigger(tName));
|
||||
_logger?.LogInformation("Trigger '{triggerName}' has been added to the '{entityName}' entity.", tName, typeof(T).Name);
|
||||
});
|
||||
|
||||
|
||||
// TODO: call add trigger methods with attributes and reflection
|
||||
AddTrigger<Config>();
|
||||
AddTrigger<DocumentReceiverElement>();
|
||||
@ -200,6 +209,7 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
|
||||
AddTrigger<EnvelopeType>();
|
||||
AddTrigger<Receiver>();
|
||||
AddTrigger<EmailOut>();
|
||||
#endregion Trigger
|
||||
|
||||
//configure model builder for user manager tables
|
||||
modelBuilder.ConfigureUserManager();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user