Exemple #1
0
        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));
            }
        }