public async Task Execute(AtualizarAnuncioInput incluirAnuncioInput) { if (incluirAnuncioInput.Id == 0) { _outputHandler.NotFound($"Codigo do anuncio inválido."); return; } var anuncio = await _anuncioRepository.Get(incluirAnuncioInput.Id); if (anuncio == null) { _outputHandler.NotFound($"Anuncio não encontrado."); return; } List <MarcaVeiculo> marcas = await _marcaVeiculoService.Buscar(); var marcaSelecionada = marcas.FirstOrDefault(marca => marca.ID == incluirAnuncioInput.IdMarca); if (marcaSelecionada == null) { _outputHandler.NotFound($"Marca selecionada inválida."); return; } List <ModeloVeiculo> modelos = await _modeloVeiculoService.Buscar(marcaSelecionada.ID); var modeloSelecionado = modelos.FirstOrDefault(modelo => modelo.ID == incluirAnuncioInput.IdModelo && modelo.MakeID == incluirAnuncioInput.IdMarca); if (modeloSelecionado == null) { _outputHandler.NotFound($"Modelo selecionado inválido."); return; } List <VersaoVeiculo> versoes = await _versaoVeiculoService.Buscar(modeloSelecionado.ID); var versaoSelecionada = versoes.FirstOrDefault(versao => versao.ID == incluirAnuncioInput.IdVersao && versao.ModelID == incluirAnuncioInput.IdModelo); if (versaoSelecionada == null) { _outputHandler.NotFound($"Versão selecionada inválida."); return; } anuncio.AtualizarAnuncio( marcaSelecionada.Name, modeloSelecionado.Name, versaoSelecionada.Name, incluirAnuncioInput.Ano, incluirAnuncioInput.Quilometragem, incluirAnuncioInput.Observacao); await _anuncioRepository.Update(anuncio); AtualizarAnuncioOutput atualizarAnuncioOutput = new AtualizarAnuncioOutput(anuncio); _outputHandler.Default(atualizarAnuncioOutput); }
public async Task <IActionResult> Put([FromBody][Required] AtualizarAnuncioRequest request) { var atualizarAnuncioInput = new AtualizarAnuncioInput(request.Id, request.IdMarca, request.IdModelo, request.IdVersao, request.Ano, request.Quilometragem, request.Observacao); await _atualizarAnuncioUseCase.Execute(atualizarAnuncioInput); return(_atualizarAnuncioPresenter.ViewModel); }