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(); } }
public void SolicitarFaturamento(int ano, int mes) { var repositorioDeContratos = new RepositorioDeContratos(); int ultimoContrato = repositorioDeContratos.ObterNumeroDoUltimoContrato(); if (ultimoContrato == 0) { Trace.TraceWarning("Não foi encontrado nenhum contrato."); return; } Guid processamentoId = Guid.NewGuid(); RegistrarProcessamento(processamentoId, ano, mes); SolicitarFaturamento(processamentoId, ano, mes, 1, ultimoContrato); }