static void Main(string[] args) { var totalAtual = 500000; var pagina = 1; var itens = 300; while ((pagina * itens) <= totalAtual) { LogConsole.Mensagem($"{DateTime.Now} - Etapa 1 - Obtendo Clientes do B2B - Página {pagina}"); var clientesDoB2b = ClientesB2B.Obter(pagina, itens).ToList(); LogConsole.Mensagem($"{DateTime.Now} - Etapa 2 - Obtendo clientes que ainda não foram migrados"); var clientesMigrados = ClientesIntegracao.EstahLah(clientesDoB2b.Select(c => c.Documento).ToList()); var clientes = clientesDoB2b.Where(c => !clientesMigrados.Any(cm => cm == c.Documento)); LogConsole.Mensagem($"{DateTime.Now} - Etapa 3 - Carga de Clientes na base de Integracao - Página: {pagina} - Itens: {clientes.Count()}"); foreach (var doCliente in clientes) { try { ClientesIntegracao.CriarCliente(doCliente); var json = ObterDadosDoCliente(doCliente.Documento); DadosClientesIntegracao.CriarDadosCliente(DeParaDadosCliente(doCliente, json)); } catch (Exception e) { LogConsole.Erro($"Cliente: {doCliente.Documento} - {e.Message}"); } } LogConsole.Aviso($"{DateTime.Now} - RESULTADO - Feitos {(pagina * itens)} de {totalAtual}"); pagina++; LogConsole.Mensagem("-------------------"); } Console.ReadKey(); }