public async Task <Veiculo> Salvar(Guid?id, VeiculoModel model) { Veiculo veiculo; if (id.HasValue) { veiculo = await _veiculoRepository.BuscarVeiculo(id.Value); if (veiculo != null && veiculo.Id != Guid.Empty) { veiculo.Alterar(model.ValorHora, model.CategoriaId); veiculo.ValidarCategoria(await _categoriaService.Obter(model.CategoriaId)); veiculo.ValidarModelo(await _modeloService.Obter(model.ModeloId)); if (veiculo.Valido) { await _veiculoRepository.AtualizarVeiculo(veiculo); } } } else { veiculo = _mapper.Map <Veiculo>(model); veiculo.ValidarCategoria(await _categoriaService.Obter(veiculo.CategoriaId)); veiculo.ValidarModelo(await _modeloService.Obter(veiculo.ModeloId)); if (veiculo.Valido) { await _veiculoRepository.SalvarVeiculo(veiculo); } } return(veiculo); }