using MediatR; using cuqmbr.TravelGuide.Application.Common.Interfaces.Persistence; using cuqmbr.TravelGuide.Application.Common.Exceptions; namespace cuqmbr.TravelGuide.Application.Aircrafts.Commands.DeleteAircraft; public class DeleteAircraftCommandHandler : IRequestHandler { private readonly UnitOfWork _unitOfWork; public DeleteAircraftCommandHandler(UnitOfWork unitOfWork) { _unitOfWork = unitOfWork; } public async Task Handle( DeleteAircraftCommand request, CancellationToken cancellationToken) { var entity = await _unitOfWork.AircraftRepository.GetOneAsync( e => e.Guid == request.Guid, cancellationToken); if (entity == null) { throw new NotFoundException(); } await _unitOfWork.AircraftRepository.DeleteOneAsync( entity, cancellationToken); await _unitOfWork.SaveAsync(cancellationToken); _unitOfWork.Dispose(); } }