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); } }