using ChapterX.Domain.Repositories; using MediatR; using Microsoft.Extensions.Logging; namespace ChapterX.Application.NeedApproval.Commands { public class DeleteHandler : IRequestHandler { private readonly INeedApprovalRepository _needApprovalRepository; private readonly ILogger _logger; public DeleteHandler(INeedApprovalRepository needApprovalRepository, ILogger logger) { _needApprovalRepository = needApprovalRepository; _logger = logger; } public async Task Handle(DeleteRequest request, CancellationToken cancellationToken) { var needApproval = await _needApprovalRepository.GetByIdAsync(request.Id, cancellationToken); if (needApproval is null) return new DeleteResponse(false); await _needApprovalRepository.DeleteAsync(needApproval, cancellationToken); return new DeleteResponse(true); } } }