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(); } }
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"); } } }