public override async Task <CommandResult> Handle(RetirarVeiculoCommand request, CancellationToken cancellationToken) { var aluguel = _aluguelRepository.ObterPorNumeroControle(request.NumeroControleAluguel); if (aluguel == null) { return(CommandResult.Error($"O aluguel com número de controle {request.NumeroControleAluguel} não foi encontrado")); } var veiculo = _veiculoRepository.ObterPorPlaca(request.NumeroPlaca); if (veiculo == null) { return(CommandResult.Error($"O veículo placa {request.NumeroPlaca} não foi encontrado")); } veiculo.Retirar(aluguel.Id.ToString(), request.DataHoraRetirada.Value); if (veiculo.Invalid) { return(CommandResult.Error(veiculo.Notifications)); } _veiculoRepository.Update(veiculo); await veiculo.RaiseEvents(_mediator); return(CommandResult.Ok()); }