Compare commits
7 Commits
911c812b19
...
1edcfed318
| Author | SHA1 | Date | |
|---|---|---|---|
| 1edcfed318 | |||
| 2004c7ced2 | |||
| 40135fb8a2 | |||
| b57c0aa9c7 | |||
| 2c4c18935f | |||
| d8ed06fdb6 | |||
| 09bf8db884 |
@@ -1,4 +1,5 @@
|
|||||||
using DigitalData.Core.Abstraction.Application.Repository;
|
using DigitalData.Core.Abstraction.Application.Repository;
|
||||||
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
|
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
|
||||||
@@ -8,13 +9,13 @@ namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Han
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class RemoveAnnotationHandler : INotificationHandler<RemoveSignatureNotification>
|
public class RemoveAnnotationHandler : INotificationHandler<RemoveSignatureNotification>
|
||||||
{
|
{
|
||||||
private readonly IRepository<Domain.Entities.DocumentStatus> _repo;
|
private readonly IRepository<Annotation> _repo;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="repository"></param>
|
/// <param name="repository"></param>
|
||||||
public RemoveAnnotationHandler(IRepository<Domain.Entities.DocumentStatus> repository)
|
public RemoveAnnotationHandler(IRepository<Annotation> repository)
|
||||||
{
|
{
|
||||||
_repo = repository;
|
_repo = repository;
|
||||||
}
|
}
|
||||||
@@ -25,8 +26,27 @@ public class RemoveAnnotationHandler : INotificationHandler<RemoveSignatureNotif
|
|||||||
/// <param name="notification"></param>
|
/// <param name="notification"></param>
|
||||||
/// <param name="cancel"></param>
|
/// <param name="cancel"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
|
public Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
|
||||||
{
|
{
|
||||||
await _repo.DeleteAsync(s => s.Envelope!.Uuid == notification.EnvelopeUuid, cancel);
|
return _repo.DeleteAsync(annots =>
|
||||||
|
{
|
||||||
|
// envelope ID filter
|
||||||
|
if (notification.EnvelopeId is int envelopeId)
|
||||||
|
annots = annots.Where(annot => annot.Element!.Document.EnvelopeId == envelopeId);
|
||||||
|
|
||||||
|
// envelope UUID filter
|
||||||
|
if (notification.EnvelopeUuid is string envelopeUuid)
|
||||||
|
annots = annots.Where(annot => annot.Element!.Document.Envelope!.Uuid == envelopeUuid);
|
||||||
|
|
||||||
|
// receiver ID
|
||||||
|
if (notification.ReceiverId is int receiverId)
|
||||||
|
annots = annots.Where(annot => annot.Element!.ReceiverId == receiverId);
|
||||||
|
|
||||||
|
// receiver signature
|
||||||
|
if (notification.ReceiverSignature is string receiverSignature)
|
||||||
|
annots = annots.Where(annot => annot.Element!.Receiver!.Signature == receiverSignature);
|
||||||
|
|
||||||
|
return annots;
|
||||||
|
}, cancel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
using AngleSharp.Html;
|
||||||
|
using DigitalData.Core.Abstraction.Application.Repository;
|
||||||
|
using MediatR;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public class RemoveDocStatusHandler : INotificationHandler<RemoveSignatureNotification>
|
||||||
|
{
|
||||||
|
private readonly IRepository<Domain.Entities.DocumentStatus> _repo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="repository"></param>
|
||||||
|
public RemoveDocStatusHandler(IRepository<Domain.Entities.DocumentStatus> repository)
|
||||||
|
{
|
||||||
|
_repo = repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="notification"></param>
|
||||||
|
/// <param name="cancel"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
|
||||||
|
{
|
||||||
|
return _repo.DeleteAsync(statuses =>
|
||||||
|
{
|
||||||
|
// envelope ID filter
|
||||||
|
if (notification.EnvelopeId is int envelopeId)
|
||||||
|
statuses = statuses.Where(status => status.EnvelopeId == envelopeId);
|
||||||
|
|
||||||
|
// envelope UUID filter
|
||||||
|
if (notification.EnvelopeUuid is string envelopeUuid)
|
||||||
|
statuses = statuses.Where(status => status.Envelope!.Uuid == envelopeUuid);
|
||||||
|
|
||||||
|
// receiver Id filter
|
||||||
|
if (notification.ReceiverId is int receiverId)
|
||||||
|
statuses = statuses.Where(status => status.ReceiverId == receiverId);
|
||||||
|
|
||||||
|
// receiver signature filter
|
||||||
|
if (notification.ReceiverSignature is string receiverSignature)
|
||||||
|
statuses = statuses.Where(status => status.Receiver!.Signature == receiverSignature);
|
||||||
|
|
||||||
|
return statuses;
|
||||||
|
}, cancel);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
using DigitalData.Core.Abstraction.Application.Repository;
|
using DigitalData.Core.Abstraction.Application.Repository;
|
||||||
using EnvelopeGenerator.Application.Common.Extensions;
|
using EnvelopeGenerator.Application.Common.Extensions;
|
||||||
using EnvelopeGenerator.Application.Histories.Commands;
|
|
||||||
using EnvelopeGenerator.Domain.Constants;
|
using EnvelopeGenerator.Domain.Constants;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
|
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
|
||||||
|
|
||||||
@@ -29,12 +27,29 @@ public class RemoveHistoryHandler : INotificationHandler<RemoveSignatureNotifica
|
|||||||
/// <param name="notification"></param>
|
/// <param name="notification"></param>
|
||||||
/// <param name="cancel"></param>
|
/// <param name="cancel"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
|
public Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
|
||||||
{
|
{
|
||||||
await _repo.DeleteAsync(hists
|
return _repo.DeleteAsync(hists =>
|
||||||
=> hists
|
{
|
||||||
.Where(hist => hist.Envelope!.Uuid == notification.EnvelopeUuid)
|
hists = hists.Where(hist => hist.Status == EnvelopeStatus.DocumentSigned);
|
||||||
.Where(hist => hist.Status == EnvelopeStatus.DocumentSigned),
|
|
||||||
cancel);
|
// envelope ID filter
|
||||||
|
if (notification.EnvelopeId is int envelopeId)
|
||||||
|
hists = hists.Where(hist => hist.EnvelopeId == envelopeId);
|
||||||
|
|
||||||
|
// envelope UUID filter
|
||||||
|
if (notification.EnvelopeUuid is string envelopeUuid)
|
||||||
|
hists = hists.Where(hist => hist.Envelope!.Uuid == envelopeUuid);
|
||||||
|
|
||||||
|
// receiver ID filter
|
||||||
|
if (notification.ReceiverId is int receiverId)
|
||||||
|
hists = hists.Where(hist => hist.Receiver!.Id == receiverId);
|
||||||
|
|
||||||
|
// receiver signature filter
|
||||||
|
if (notification.ReceiverSignature is string receiverSignature)
|
||||||
|
hists = hists.Where(hist => hist.Receiver!.Signature == receiverSignature);
|
||||||
|
|
||||||
|
return hists;
|
||||||
|
}, cancel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,13 @@ namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="EnvelopeId"></param>
|
||||||
|
/// <param name="ReceiverId"></param>
|
||||||
/// <param name="EnvelopeUuid"></param>
|
/// <param name="EnvelopeUuid"></param>
|
||||||
public record RemoveSignatureNotification(string EnvelopeUuid) : INotification;
|
/// <param name="ReceiverSignature"></param>
|
||||||
|
public record RemoveSignatureNotification(
|
||||||
|
int? EnvelopeId = null,
|
||||||
|
int? ReceiverId = null,
|
||||||
|
string? EnvelopeUuid = null,
|
||||||
|
string? ReceiverSignature = null
|
||||||
|
) : INotification;
|
||||||
@@ -112,8 +112,7 @@ public class Signature : ISignature, IHasReceiver
|
|||||||
#if NET
|
#if NET
|
||||||
?
|
?
|
||||||
#endif
|
#endif
|
||||||
Receiver
|
Receiver { get; set; }
|
||||||
{ get; set; }
|
|
||||||
|
|
||||||
public virtual IEnumerable<Annotation>
|
public virtual IEnumerable<Annotation>
|
||||||
#if NET
|
#if NET
|
||||||
|
|||||||
Reference in New Issue
Block a user