Example #1
0
        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);
        }
Example #2
0
        public async Task Execute(ConsultarAnuncioInput consultarAnuncioInput)
        {
            if (consultarAnuncioInput.Id == 0)
            {
                _outputHandler.NotFound($"Codigo do anuncio inválido.");
                return;
            }

            IAnuncio anuncio     = null;
            string   anuncioJson = _cache.GetString($"Anuncio:{consultarAnuncioInput.Id}");

            if (anuncioJson == null)
            {
                anuncio = await _anuncioRepository.Get(consultarAnuncioInput.Id);
            }

            if (anuncio == null)
            {
                _outputHandler.NotFound($"Anuncio não encontrado.");
                return;
            }

            if (anuncioJson == null)
            {
                anuncioJson = JsonConvert.SerializeObject(anuncio);
                DistributedCacheEntryOptions opcoesCache = new DistributedCacheEntryOptions();
                opcoesCache.SetAbsoluteExpiration(TimeSpan.FromMinutes(5));
                _cache.SetString($"Anuncio:{anuncio.ID}", anuncioJson, opcoesCache);
            }

            ConsultarAnuncioOutput consultarAnuncioOutput = new ConsultarAnuncioOutput(anuncio);

            _outputHandler.Default(consultarAnuncioOutput);
        }
Example #3
0
        public async Task Execute(RemoverAnuncioInput removerAnuncioInput)
        {
            if (removerAnuncioInput.Id == 0)
            {
                _outputHandler.NotFound($"Codigo do anuncio inválido.");
                return;
            }

            var anuncio = await _anuncioRepository.Get(removerAnuncioInput.Id);

            if (anuncio == null)
            {
                _outputHandler.NotFound($"Anuncio não encontrado.");
                return;
            }

            await _anuncioRepository.Delete(anuncio);

            _outputHandler.Default();
        }
        public ResponseBase <AnuncioDTO> Read(int id)
        {
            var response = new ResponseBase <AnuncioDTO>();

            try
            {
                var keys = new Dictionary <string, object>();
                keys.Add("ID", id);

                var anuncio = _anuncioRepository.Get(keys);

                response.Data = _mapper.Map(anuncio, new AnuncioDTO());
            }
            catch (Exception ex)
            {
                response.Success   = false;
                response.Message   = $"{ex.Message}";
                response.Exception = ex;
            }

            return(response);
        }
Example #5
0
 public Anuncio Get(int id)
 {
     return(anuncioRepository.Get(id));
 }
        public IEnumerable <Anuncio> Get()
        {
            IEnumerable <Anuncio> list = _anuncioRepository.Get();

            return(list);
        }