using DigitalData.Core.Abstraction.Application.Repository;
using EnvelopeGenerator.Application.Common.Extensions;
using EnvelopeGenerator.Application.Histories.Commands;
using EnvelopeGenerator.Domain.Constants;
using MediatR;
using Newtonsoft.Json;
namespace EnvelopeGenerator.Application.Common.Notifications.RemoveSignature.Handlers;
///
///
///
public class RemoveHistoryHandler : INotificationHandler
{
private readonly IRepository _repo;
///
///
///
///
public RemoveHistoryHandler(IRepository repository)
{
_repo = repository;
}
///
///
///
///
///
///
public async Task Handle(RemoveSignatureNotification notification, CancellationToken cancel)
{
await _repo.DeleteAsync(hists
=> hists
.Where(hist => hist.Envelope!.Uuid == notification.EnvelopeUuid)
.Where(hist => hist.Status == EnvelopeStatus.DocumentSigned),
cancel);
}
}