refactor(DocumentReceiverElement): make AddedWhen nullable and add ChangedWho-property

This commit is contained in:
tekh 2025-09-08 15:00:02 +02:00
parent 442b7f7451
commit f41f26b810
11 changed files with 38 additions and 22 deletions

View File

@ -131,8 +131,9 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler<ReadEnvelopeRece
q = q.Where(er => !status.Ignore.Contains(er.Envelope!.Status)); q = q.Where(er => !status.Ignore.Contains(er.Envelope!.Status));
} }
var envRcvs = await q.Include(er => er.Envelope).ThenInclude(e => e!.Documents).ThenInclude(d => d.Elements) var envRcvs = await q
.Include(er => er.Envelope).ThenInclude(e => e!.History) .Include(er => er.Envelope).ThenInclude(e => e!.Documents!).ThenInclude(d => d.Elements)
.Include(er => er.Envelope).ThenInclude(e => e!.Histories)
.Include(er => er.Envelope).ThenInclude(e => e!.User) .Include(er => er.Envelope).ThenInclude(e => e!.User)
.Include(er => er.Receiver) .Include(er => er.Receiver)
.ToListAsync(cancel); .ToListAsync(cancel);

View File

@ -71,7 +71,7 @@ public class ReceiverAlreadySignedQueryHandler : IRequestHandler<ReceiverAlready
return await _repo.Read() return await _repo.Read()
.Where(er => er.Envelope!.Uuid == request.Envelope.Uuid) .Where(er => er.Envelope!.Uuid == request.Envelope.Uuid)
.Where(er => er.Receiver!.Signature == request.Receiver.Signature) .Where(er => er.Receiver!.Signature == request.Receiver.Signature)
.Where(er => er.Envelope!.History.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned)) .Where(er => er.Envelope!.Histories.Any(hist => hist.Status == EnvelopeStatus.DocumentSigned))
.AnyAsync(cancel); .AnyAsync(cancel);
} }
} }

View File

@ -63,7 +63,7 @@ Public Class EnvelopeModel
oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId) oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId)
oEnvelope.EnvelopeReceivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id) oEnvelope.EnvelopeReceivers = ReceiverModel.ListEnvelopeReceivers(oEnvelope.Id)
oEnvelope.Documents = DocumentModel.List(oEnvelope.Id) oEnvelope.Documents = DocumentModel.List(oEnvelope.Id)
oEnvelope.History = HistoryModel.List(oEnvelope.Id) oEnvelope.Histories = HistoryModel.List(oEnvelope.Id)
oEnvelope.Type = EnvelopeTypeModel.GetById(oEnvelope.EnvelopeTypeId) oEnvelope.Type = EnvelopeTypeModel.GetById(oEnvelope.EnvelopeTypeId)
Return oEnvelope Return oEnvelope

View File

@ -90,10 +90,17 @@ public class DocumentReceiverElement
[Required] [Required]
[Column("ADDED_WHEN", TypeName = "datetime")] [Column("ADDED_WHEN", TypeName = "datetime")]
[DefaultValue("GETDATE()")] [DefaultValue("GETDATE()")]
public DateTime AddedWhen { get; set; } public DateTime? AddedWhen { get; set; }
[Column("CHANGED_WHEN", TypeName = "datetime")] [Column("CHANGED_WHEN", TypeName = "datetime")]
public DateTime ChangedWhen { get; set; } public DateTime? ChangedWhen { get; set; }
[Column("CHANGED_WHO", TypeName = "nvarchar(100)")]
public string
#if NET
?
#endif
ChangedWho { get; set; }
[ForeignKey("DocumentId")] [ForeignKey("DocumentId")]
public virtual EnvelopeDocument Document { get; set; } public virtual EnvelopeDocument Document { get; set; }

View File

@ -36,7 +36,7 @@ public class Envelope
CertificationType = (int)Constants.CertificationType.AdvancedElectronicSignature; CertificationType = (int)Constants.CertificationType.AdvancedElectronicSignature;
UseAccessCode = false; UseAccessCode = false;
Documents = Enumerable.Empty<EnvelopeDocument>().ToList(); Documents = Enumerable.Empty<EnvelopeDocument>().ToList();
History = Enumerable.Empty<EnvelopeHistory>().ToList(); Histories = Enumerable.Empty<EnvelopeHistory>().ToList();
EnvelopeReceivers = Enumerable.Empty<EnvelopeReceiver>().ToList(); EnvelopeReceivers = Enumerable.Empty<EnvelopeReceiver>().ToList();
#endif #endif
} }
@ -158,9 +158,17 @@ public class Envelope
public bool IsAlreadySent => Status > EnvelopeStatus.EnvelopeSaved; public bool IsAlreadySent => Status > EnvelopeStatus.EnvelopeSaved;
#endif #endif
public List<EnvelopeDocument> Documents { get; set; } public List<EnvelopeDocument>
#if NET
?
#endif
Documents { get; set; }
public List<EnvelopeHistory> History { get; set; } public List<EnvelopeHistory>
#if NET
?
#endif
Histories { get; set; }
public List<EnvelopeReceiver> public List<EnvelopeReceiver>
#if NET #if NET

View File

@ -196,7 +196,7 @@ Partial Class frmMain
GridLevelNode1.LevelTemplate = Me.ViewReceivers GridLevelNode1.LevelTemplate = Me.ViewReceivers
GridLevelNode1.RelationName = "EnvelopeReceivers" GridLevelNode1.RelationName = "EnvelopeReceivers"
GridLevelNode2.LevelTemplate = Me.ViewHistory GridLevelNode2.LevelTemplate = Me.ViewHistory
GridLevelNode2.RelationName = "History" GridLevelNode2.RelationName = "Histories"
Me.GridEnvelopes.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1, GridLevelNode2}) Me.GridEnvelopes.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1, GridLevelNode2})
Me.GridEnvelopes.MainView = Me.ViewEnvelopes Me.GridEnvelopes.MainView = Me.ViewEnvelopes
Me.GridEnvelopes.MenuManager = Me.RibbonControl Me.GridEnvelopes.MenuManager = Me.RibbonControl
@ -582,7 +582,7 @@ Partial Class frmMain
GridLevelNode3.LevelTemplate = Me.ViewReceiversCompleted GridLevelNode3.LevelTemplate = Me.ViewReceiversCompleted
GridLevelNode3.RelationName = "EnvelopeReceivers" GridLevelNode3.RelationName = "EnvelopeReceivers"
GridLevelNode4.LevelTemplate = Me.ViewHistoryCompleted GridLevelNode4.LevelTemplate = Me.ViewHistoryCompleted
GridLevelNode4.RelationName = "History" GridLevelNode4.RelationName = "Histories"
Me.GridCompleted.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode3, GridLevelNode4}) Me.GridCompleted.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode3, GridLevelNode4})
Me.GridCompleted.MainView = Me.ViewCompleted Me.GridCompleted.MainView = Me.ViewCompleted
Me.GridCompleted.MenuManager = Me.RibbonControl Me.GridCompleted.MenuManager = Me.RibbonControl

View File

@ -116,9 +116,9 @@ public class EGDbContext : DbContext, IUserManagerDbContext, IMailDbContext
.HasForeignKey(ed => ed.EnvelopeId); .HasForeignKey(ed => ed.EnvelopeId);
modelBuilder.Entity<Envelope>() modelBuilder.Entity<Envelope>()
.HasMany(e => e.History) .HasMany(e => e.Histories)
.WithOne() .WithOne()
.HasForeignKey(eh => eh.EnvelopeId); .HasForeignKey(hist => hist.EnvelopeId);
#endregion Envelope #endregion Envelope
#region Receiver #region Receiver

View File

@ -1300,7 +1300,7 @@ namespace EnvelopeGenerator.Infrastructure.Migrations
modelBuilder.Entity("EnvelopeGenerator.Domain.Entities.EnvelopeHistory", b => modelBuilder.Entity("EnvelopeGenerator.Domain.Entities.EnvelopeHistory", b =>
{ {
b.HasOne("EnvelopeGenerator.Domain.Entities.Envelope", null) b.HasOne("EnvelopeGenerator.Domain.Entities.Envelope", null)
.WithMany("History") .WithMany("Histories")
.HasForeignKey("EnvelopeId") .HasForeignKey("EnvelopeId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
@ -1360,7 +1360,7 @@ namespace EnvelopeGenerator.Infrastructure.Migrations
{ {
b.Navigation("Documents"); b.Navigation("Documents");
b.Navigation("History"); b.Navigation("Histories");
b.Navigation("EnvelopeReceivers"); b.Navigation("EnvelopeReceivers");
}); });

View File

@ -1297,7 +1297,7 @@ namespace EnvelopeGenerator.Infrastructure.Migrations
modelBuilder.Entity("EnvelopeGenerator.Domain.Entities.EnvelopeHistory", b => modelBuilder.Entity("EnvelopeGenerator.Domain.Entities.EnvelopeHistory", b =>
{ {
b.HasOne("EnvelopeGenerator.Domain.Entities.Envelope", null) b.HasOne("EnvelopeGenerator.Domain.Entities.Envelope", null)
.WithMany("History") .WithMany("Histories")
.HasForeignKey("EnvelopeId") .HasForeignKey("EnvelopeId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
@ -1357,7 +1357,7 @@ namespace EnvelopeGenerator.Infrastructure.Migrations
{ {
b.Navigation("Documents"); b.Navigation("Documents");
b.Navigation("History"); b.Navigation("Histories");
b.Navigation("EnvelopeReceivers"); b.Navigation("EnvelopeReceivers");
}); });

View File

@ -25,7 +25,7 @@ public class EnvelopeRepository : CRUDRepository<Envelope, int, EGDbContext>, IE
query = query.Include(e => e.Documents); query = query.Include(e => e.Documents);
if (history) if (history)
query = query.Include(e => e.History); query = query.Include(e => e.Histories);
return await query.ToListAsync(); return await query.ToListAsync();
} }
@ -44,7 +44,7 @@ public class EnvelopeRepository : CRUDRepository<Envelope, int, EGDbContext>, IE
query = query.Include(e => e.User!); query = query.Include(e => e.User!);
if (withAll || withHistory) if (withAll || withHistory)
query = query.Include(e => e.History); query = query.Include(e => e.Histories);
return await query.FirstOrDefaultAsync(); return await query.FirstOrDefaultAsync();
} }

View File

@ -28,7 +28,7 @@ public class EnvelopeReceiverRepository : CRUDRepository<EnvelopeReceiver, (int
if (withEnvelope) if (withEnvelope)
query = query query = query
.Include(er => er.Envelope).ThenInclude(e => e!.Documents!).ThenInclude(d => d.Elements!.Where(e => signature == null || e.Receiver!.Signature == signature)) .Include(er => er.Envelope).ThenInclude(e => e!.Documents!).ThenInclude(d => d.Elements!.Where(e => signature == null || e.Receiver!.Signature == signature))
.Include(er => er.Envelope).ThenInclude(e => e!.History) .Include(er => er.Envelope).ThenInclude(e => e!.Histories)
.Include(er => er.Envelope).ThenInclude(e => e!.User); .Include(er => er.Envelope).ThenInclude(e => e!.User);
if (withReceiver) if (withReceiver)
@ -63,7 +63,7 @@ public class EnvelopeReceiverRepository : CRUDRepository<EnvelopeReceiver, (int
if (withEnvelope) if (withEnvelope)
query = query query = query
.Include(er => er.Envelope).ThenInclude(e => e!.Documents!).ThenInclude(d => d.Elements!.Where(e => e.Receiver!.Id == receiverId)) .Include(er => er.Envelope).ThenInclude(e => e!.Documents!).ThenInclude(d => d.Elements!.Where(e => e.Receiver!.Id == receiverId))
.Include(er => er.Envelope).ThenInclude(e => e!.History) .Include(er => er.Envelope).ThenInclude(e => e!.Histories)
.Include(er => er.Envelope).ThenInclude(e => e!.User); .Include(er => er.Envelope).ThenInclude(e => e!.User);
if (withReceiver) if (withReceiver)