void GetMarcas() { Console.WriteLine("Obtendo lista de marcas"); HttpClient httpClient = new HttpClient(); HttpResponseMessage response = httpClient.GetAsync(URL_MARCAS).Result; if (response == null || !response.IsSuccessStatusCode) { Console.WriteLine("Erro ao obter a lista de marcas, tentando novamente"); GetMarcas(); return; } string content = response.Content.ReadAsStringAsync().Result; if (String.IsNullOrEmpty(content)) { Console.WriteLine("O retorno da API de marcas foi vazio, tentando novamente"); GetMarcas(); return; } List <Marca> marcas = Marcas.FromJson(content); new Thread(StartQueueListener).Start(); SQLiteCommand cmd = new SQLiteCommand("INSERT INTO marcas (id, name, fipe_name, key, \"order\") VALUES (@id, @name, @fipe_name, @key, @order)", _connection); foreach (Marca marca in marcas) { cmd.Parameters.Clear(); cmd.Parameters.Add("@id", DbType.Int32).Value = marca.Id; cmd.Parameters.Add("@name", DbType.String).Value = marca.Name; cmd.Parameters.Add("@fipe_name", DbType.String).Value = marca.FipeName; cmd.Parameters.Add("@key", DbType.String).Value = marca.Key; cmd.Parameters.Add("@order", DbType.Int32).Value = marca.Order; cmd.ExecuteNonQuery(); //countdownEvent.Reset(countdownEvent.CurrentCount + 1); _queue.Enqueue(new TaskQueue { Type = TaskQueueType.VEICULOS, URL = String.Format(URL_VEICULOS, marca.Id), Marca = marca.Id }); Console.WriteLine(String.Format("Inserindo Marca {0}", marca.FipeName)); } }