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 Execute(IncluirAnuncioInput incluirAnuncioInput) { 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; } var anuncio = _entityFactory.NovoAnuncio( marcaSelecionada.Name, modeloSelecionado.Name, versaoSelecionada.Name, incluirAnuncioInput.Ano, incluirAnuncioInput.Quilometragem, incluirAnuncioInput.Observacao); await _anuncioRepository.Add(anuncio); if (anuncio.ID == 0) { _outputHandler.NotFound($"Ocorreu um erro ao criar o anuncio, por favor tente novamente."); return; } var anuncioJson = JsonConvert.SerializeObject(anuncio); DistributedCacheEntryOptions opcoesCache = new DistributedCacheEntryOptions(); opcoesCache.SetAbsoluteExpiration(TimeSpan.FromMinutes(5)); _cache.SetString($"Anuncio:{anuncio.ID}", anuncioJson, opcoesCache); IncluirAnuncioOutput incluirAnuncioOutput = new IncluirAnuncioOutput(anuncio); _outputHandler.Default(incluirAnuncioOutput); }
public async Task Execute(ListarVersoesVeiculoInput listarVersoesVeiculoInput) { List <VersaoVeiculo> versoes = await _versaoVeiculoService.Buscar(listarVersoesVeiculoInput.IdModeloVeiculo); if (versoes == null || !versoes.Any()) { _outputHandler.NotFound($"Nenhum modelo para a marca selecionada."); return; } ListarVersoesVeiculoOutput listarVersoesVeiculoOutput = new ListarVersoesVeiculoOutput(versoes); _outputHandler.Default(listarVersoesVeiculoOutput); }