public Task <bool> Handle(DeleteApartment request, CancellationToken cancellationToken) { var currentApartment = _apartmentRepository.FindById(request.Id); if (currentApartment == null) { Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Apartamento não existe", NotificationType.Error)); return(Task.FromResult(false)); } var hasResidents = _apartmentRepository.HasResidents(currentApartment.Id); if (hasResidents) { Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Apartamento com moradores não pode ser eliminado", NotificationType.Error)); return(Task.FromResult(false)); } currentApartment.Delete(User.GetUserId()); _apartmentRepository.Update(currentApartment); if (Commit()) { Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Operação realizada com sucesso", NotificationType.Info)); return(Task.FromResult(true)); } Mediator.RaiseNotification(new DomainNotification(nameof(Apartment), "Erro ao realizar a operação", NotificationType.Error)); return(Task.FromResult(false)); }
Task <OneOf <Success, NotFound> > IRequestHandler <DeleteApartment, OneOf <Success, NotFound> > .Handle(DeleteApartment request, CancellationToken cancellationToken) { return(this.apartmentRepository.Delete(request.ApartmentId, cancellationToken)); }