private static void GerarLoteDeContratos(int inicio, int fim, int grupo) { Trace.TraceInformation(String.Format("Gerando contratos de {0} a {1} no grupo {2}.", inicio, fim, grupo)); var repositorioDeContratos = new RepositorioDeContratos(); int quantidadeNoLote = 0; for (int atual = inicio; atual <= fim; atual++) { // incluir contratos Contrato contrato = NovoContrato(atual); repositorioDeContratos.AdicionarObjeto(contrato); quantidadeNoLote += 1; if (quantidadeNoLote == 100 || atual == fim) { repositorioDeContratos.SalvarLote(); repositorioDeContratos.CriarNovoContexto(); quantidadeNoLote = 0; } // incluir itens de contrato var repositorioDeItensDeContrato = new RepositorioDeItensDeContrato(); foreach (ItemDeContrato item in NovosItensDeContrato(atual)) { repositorioDeItensDeContrato.AdicionarObjeto(item); } repositorioDeItensDeContrato.SalvarLote(); } }