using DigitalData.Core.Abstraction.Application.Repository;
using MediatR;
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
///
///
///
public class RemoveDocStatusHandler : INotificationHandler
{
private readonly IRepository _repo;
///
///
///
///
public RemoveDocStatusHandler(IRepository repository)
{
_repo = repository;
}
///
///
///
///
///
///
public Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
{
return _repo.DeleteAsync(statuses =>
{
statuses = statuses.Where(status => status.Envelope!.Uuid == notification.EnvelopeUuid);
if (notification.ReceiverSignature is string signature)
statuses = statuses.Where(status => status.Receiver!.Signature == signature);
return statuses;
}, cancel);
}
}