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; } }
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; } }