Ejemplo n.º 1
0
        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);
        }