Ejemplo n.º 1
0
        public async Task PopularVeiculosMarcaObtidosApiFipeAsync()
        {
            try
            {
                var marcas = await _marcaRepository.BuscarMarcasPorMesAnoReferenciaAsync(marca => marca.AnoReferencia == DateTime.Now.Year.ToString() &&
                                                                                         marca.MesReferencia == DateTime.Now.Month.ToString());

                var urlBaseApiFipe = await _parametroRepository.ObterValorParametroPorDescricaoAsync("BaseEndPointFipe");

                foreach (var marca in marcas)
                {
                    var descricaoTipoVeiculoMarca = await _marcaRepository.ObterDescricaoTipoVeiculoAsync(marca.IdTipoVeiculo);

                    string tipoVeiculo = ObterTipoVeiculo(descricaoTipoVeiculoMarca);
                    var    veiculos    = await _veiculoMarcaRequest.ObterVeiculosMarcaFipeApiAsync(urlBaseApiFipe, $"{tipoVeiculo}/veiculos/{marca.IdMarcaFipe}.json");

                    veiculos.ToList().ForEach(veiculo =>
                    {
                        veiculo.IdMarca = marca.IdMarca;
                    });

                    await _veiculoMarcaRepository.GravarVeiculosMarcaAsync(_mapper.Map <IEnumerable <VeiculoMarca> >(veiculos));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        public async Task PopularMarcasObtidasApiFipeAsync()
        {
            try
            {
                string urlBaseApiFipe = await _parametroRepository.ObterValorParametroPorDescricaoAsync("BaseEndPointFipe");

                IEnumerable <Parametro> parametros = await _parametroRepository.ObterParametrosAsync(parametro => parametro.NomeParametro.Contains("EndPointFipe") &&
                                                                                                     parametro.Valor.Contains("/marcas.json") && parametro.Ativo);

                IEnumerable <TipoVeiculo> tiposVeiculo = await _tipoVeiculoRepository.ObterTiposVeiculoAsync();


                foreach (var parametro in parametros)
                {
                    IEnumerable <MarcaModelRequest> marcas = await _marcaRequest.ObterMarcasFipeApi(urlBaseApiFipe, parametro.Valor);

                    var idTipoVeiculo = tiposVeiculo.FirstOrDefault(tipoVeiculo => parametro.NomeParametro.ToLower()
                                                                    .Contains(tipoVeiculo.Descricao.ToLower())).IdTipoVeiculo;
                    marcas.ToList().ForEach((marca) =>
                    {
                        marca.IdTipoVeiculo = idTipoVeiculo;
                    });

                    await _marcaRepository.GravarMarcasAsync(_mapper.Map <IEnumerable <Marca> >(marcas));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }