Ejemplo n.º 1
0
        static void BuscarLogradourosBairros(CidadeDAO cidade)
        {
            Console.WriteLine("A busca pode demorar alguns minutos. Aguarde...");
            Bairro b  = null;
            var    sw = new Stopwatch();

            for (int id = 39; id < cidade.BairrosDAO.Count; id++)
            {
                sw.Start();
                Task.Run(async() =>
                {
                    var city = new Cidade(cidade.Nome, cidade.UF);
                    b        = await Correios.GetLogradouroPorBairroAsync(city, cidade.BairrosDAO[id].Nome, new Status());
                }).Wait();
                foreach (var log in b.Logradouros)
                {
                    LogradouroDAO.AdicionarLogradouro(log, cidade.Id, cidade.BairrosDAO[id].Id);
                    Console.WriteLine($"{log.Nome} - {log.Cep} adicionado ao bd");
                }
                sw.Stop();
                Console.WriteLine($"A busca do {b.Nome} retornou {b.Logradouros.Count} logradouros e demorou {sw.Elapsed.TotalMinutes:0.0} min");
                Console.WriteLine("Aguardando 5 seg para buscar novamente");
                Task.Delay(1000 * 5 * 1).Wait();
            }
        }
Ejemplo n.º 2
0
        static void MostrarBairros(CidadeDAO cidade, bool semLogradouro = false)
        {
            int ini = 0;
            int fim = 10;
            int q   = 10;

            if (fim > cidade.BairrosDAO.Count)
            {
                fim = cidade.BairrosDAO.Count;
            }
            Console.WriteLine("Use as setas <- e -> para exibir ou ESC para sair.");
            Console.WriteLine("Para buscar individualmente aperte TAB e o id do bairro.");
            ConsoleKey key = ConsoleKey.A;

            while (key != ConsoleKey.Escape)
            {
                Console.WriteLine("ID\tID Banco\tBairro");
                for (int i = ini; i < fim; i++)
                {
                    Console.WriteLine($"{i}\t{cidade.BairrosDAO[i].Id}\t{cidade.BairrosDAO[i].Nome}");
                }
                key = Console.ReadKey().Key;
                if (key == ConsoleKey.RightArrow)
                {
                    if (fim + q > cidade.BairrosDAO.Count)
                    {
                        fim = cidade.BairrosDAO.Count;
                        ini = fim - (fim - ini);
                    }
                    else
                    {
                        ini += q;
                        fim += q;
                    }
                }
                else if (key == ConsoleKey.LeftArrow)
                {
                    if (ini - q < 0)
                    {
                        ini = 0;
                        fim = q;
                        if (fim > cidade.BairrosDAO.Count)
                        {
                            fim = cidade.BairrosDAO.Count;
                        }
                    }
                    else
                    {
                        ini -= q;
                        fim -= q;
                    }
                }
                else if (key == ConsoleKey.Tab)
                {
                    Console.Write("ID: ");
                    var id = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("A busca pode demorar alguns minutos. Aguarde...");
                    Bairro b  = null;
                    var    sw = new Stopwatch();
                    sw.Start();
                    var status = new Status();
                    Task.Run(async() =>
                    {
                        var city = new Cidade(cidade.Nome, cidade.UF);
                        b        = await Correios.GetLogradouroPorBairroAsync(city, cidade.BairrosDAO[id].Nome, status);
                    }).Wait();
                    sw.Stop();

                    foreach (var log in b.Logradouros)
                    {
                        LogradouroDAO.AdicionarLogradouro(log, cidade.Id, cidade.BairrosDAO[id].Id);
                    }
                    Console.WriteLine($"A busca retornou {b.Logradouros.Count} logradouros e demorou {sw.Elapsed.TotalMinutes:0.0} min");
                }
            }
        }