示例#1
0
        public async Task <RetornoControllerViewModel <ExibicaoMensagemViewModel, AnuncionWebMotorsModel> > Incluir(AnuncionWebMotorsModel obj)
        {
            var result = new RetornoControllerViewModel <ExibicaoMensagemViewModel, AnuncionWebMotorsModel>(obj);

            try
            {
                var entity = new AnuncioWebMotorsEntity()
                {
                    Ano           = obj.Ano,
                    Marca         = obj.Marca,
                    Modelo        = obj.Modelo,
                    Observacao    = obj.Observacao,
                    Quilometragem = obj.Quilometragem,
                    Versao        = obj.Versao
                };

                _anuncioRepository.Add(entity);
                _anuncioRepository.Save();
                obj.Id = entity.Id;
                return(result);
            }
            catch
            {
                return(null);
            }
        }
示例#2
0
        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);
        }
示例#3
0
 public bool Add(Anuncio anuncio)
 {
     if (_anuncioRepository.Add(anuncio) > 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public HttpResponseMessage Post(AnuncioViewModel model)
        {
            var anuncio = Mapper.Map <Anuncio>(model);

            anuncio.DataCadastro = anuncio.DataAlteracao = DateTime.Now;

            foreach (var tag in model.Tags)
            {
                var dbTag = _anuncioRepository.BuscarTagPorPalavra(tag.Palavra);
                if (dbTag != null)
                {
                    anuncio.Tags.Add(dbTag);
                }
                else
                {
                    anuncio.Tags.Add(new Tag
                    {
                        Palavra = tag.Palavra
                    });
                }
            }

            anuncio.IdUsuario = User.Identity.GetUserId <int>();

            if (model.DiasUteis)
            {
                anuncio.HoraInicialDiaUtil = TimeSpan.FromMinutes(model.DiaUtil[0]);
                anuncio.HoraFinalDiaUtil   = TimeSpan.FromMinutes(model.DiaUtil[1]);
            }

            if (model.FinsDeSemanaEFeriados)
            {
                anuncio.HoraInicialFimDeSemanaEFeriado = TimeSpan.FromMinutes(model.FimDeSemanaFeriado[0]);
                anuncio.HoraFinalDeSemanaEFeriado      = TimeSpan.FromMinutes(model.FimDeSemanaFeriado[1]);
            }

            if (model.BairroIds != null)
            {
                foreach (var bairroId in model.BairroIds)
                {
                    var bairro = _anuncioRepository.BuscarBairroPorId(bairroId);
                    anuncio.Bairros.Add(bairro);
                }
            }

            _anuncioRepository.Add(anuncio);

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
示例#5
0
 public void Add(Anuncio obj)
 {
     _anuncioRepository.Add(obj);
 }
示例#6
0
 public Anuncio Add(Anuncio anuncio)
 {
     anuncio.DataCadastro = DateTime.Now;
     return(_repository.Add(anuncio));
 }
 public void Add(AnuncioRequest anuncio)
 {
     _anuncioRepository.Add(anuncio);
 }