35 lines
958 B
C#
35 lines
958 B
C#
using MediatR;
|
|
using cuqmbr.TravelGuide.Application.Common.Persistence;
|
|
using cuqmbr.TravelGuide.Application.Common.Exceptions;
|
|
|
|
namespace cuqmbr.TravelGuide.Application.Cities.Commands.DeleteCity;
|
|
|
|
public class DeleteCityCommandHandler : IRequestHandler<DeleteCityCommand>
|
|
{
|
|
private readonly UnitOfWork _unitOfWork;
|
|
|
|
public DeleteCityCommandHandler(UnitOfWork unitOfWork)
|
|
{
|
|
_unitOfWork = unitOfWork;
|
|
}
|
|
|
|
public async Task Handle(
|
|
DeleteCityCommand request,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
var entity = await _unitOfWork.CityRepository.GetOneAsync(
|
|
e => e.Guid == request.Guid, cancellationToken);
|
|
|
|
if (entity == null)
|
|
{
|
|
throw new NotFoundException();
|
|
}
|
|
|
|
await _unitOfWork.CityRepository.DeleteOneAsync(
|
|
entity, cancellationToken);
|
|
|
|
await _unitOfWork.SaveAsync(cancellationToken);
|
|
_unitOfWork.Dispose();
|
|
}
|
|
}
|