public void CriarEntregaveisEmLote([FromBody] InputEntregavel entregavel) { using (var db = new FIPEContratosContext()) { var strategy = db.Database.CreateExecutionStrategy(); strategy.Execute(() => { using (var transaction = db.Database.BeginTransaction()) { try { var bEntregavel = new bEntregavel(db); bEntregavel.CriarEntregaveisEmLote(entregavel); db.Database.CommitTransaction(); } catch (Exception ex) { new bEmail(db).EnviarEmailTratamentoErro(ex, "EntregavelController-CriarEntregaveisEmLote"); throw ex; } } }); } }
public void CriarEntregaveisEmLote(InputEntregavel parametroEntregavel_) { List <OutPutGetCliente> clienteContratante = new bCliente(db).ListaContratoClientes(parametroEntregavel_.IdContrato); int numero = 0; var entregaveis = db.ContratoEntregavel.Where(w => w.IdContrato == parametroEntregavel_.IdContrato).ToList(); if (entregaveis.Count > 0) { numero = db.ContratoEntregavel.Where(w => w.IdContrato == parametroEntregavel_.IdContrato).Last().VlOrdem; } foreach (var cliente in clienteContratante) { for (int i = 0; i < parametroEntregavel_.Quantidade; i++) { numero++; DateTime novaData = parametroEntregavel_.DataPrevista.AddMonths(i); CriarNovoEntregavelLote(parametroEntregavel_.Nome, novaData, parametroEntregavel_.IdContrato, 0, numero, cliente.IdContratoCliente.ObterValorInteiro()); } } }