35 lines
1000 B
C#
35 lines
1000 B
C#
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<DeleteAircraftCommand>
|
|
{
|
|
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();
|
|
}
|
|
}
|