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,12 +131,13 @@ public class ReadEnvelopeReceiverQueryHandler : IRequestHandler<ReadEnvelopeRece
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)
.Include(er => er.Envelope).ThenInclude(e => e!.History)
var envRcvs = await q
.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.Receiver)
.ToListAsync(cancel);
return _mapper.Map<IEnumerable<EnvelopeReceiverDto>>(envRcvs);
}
}
}

View File

@ -71,7 +71,7 @@ public class ReceiverAlreadySignedQueryHandler : IRequestHandler<ReceiverAlready
return await _repo.Read()
.Where(er => er.Envelope!.Uuid == request.Envelope.Uuid)
.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);
}
}

View File

@ -63,7 +63,7 @@ Public Class EnvelopeModel
oEnvelope.User = UserModel.SelectUser(oEnvelope.UserId)
oEnvelope.EnvelopeReceivers = ReceiverModel.ListEnvelopeReceivers(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)
Return oEnvelope

View File

@ -90,10 +90,17 @@ public class DocumentReceiverElement
[Required]
[Column("ADDED_WHEN", TypeName = "datetime")]
[DefaultValue("GETDATE()")]
public DateTime AddedWhen { get; set; }
public DateTime? AddedWhen { get; set; }
[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")]
public virtual EnvelopeDocument Document { get; set; }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -28,7 +28,7 @@ public class EnvelopeReceiverRepository : CRUDRepository<EnvelopeReceiver, (int
if (withEnvelope)
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!.History)
.Include(er => er.Envelope).ThenInclude(e => e!.Histories)
.Include(er => er.Envelope).ThenInclude(e => e!.User);
if (withReceiver)
@ -63,7 +63,7 @@ public class EnvelopeReceiverRepository : CRUDRepository<EnvelopeReceiver, (int
if (withEnvelope)
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!.History)
.Include(er => er.Envelope).ThenInclude(e => e!.Histories)
.Include(er => er.Envelope).ThenInclude(e => e!.User);
if (withReceiver)