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 void Default(AtualizarAnuncioOutput atualizarAnuncioOutput) { var anuncio = new AnuncioModel { ID = atualizarAnuncioOutput.Anuncio.ID, Marca = atualizarAnuncioOutput.Anuncio.Marca, Modelo = atualizarAnuncioOutput.Anuncio.Modelo, Versao = atualizarAnuncioOutput.Anuncio.Versao, Ano = atualizarAnuncioOutput.Anuncio.Ano, Quilometragem = atualizarAnuncioOutput.Anuncio.Quilometragem, Observacao = atualizarAnuncioOutput.Anuncio.Observacao }; var atualizarAnuncioResponse = new AtualizarAnuncioResponse(anuncio); ViewModel = new OkObjectResult(atualizarAnuncioResponse); }