public void AddTB_ERRO_REGISTRO(int cd_regpss, int cd_err, string erro) { using (var context = new Conexao()) { try { var tbErroRegistro = new TB_ERRO_REGISTRO(cd_regpss, cd_err, erro); context.Entry(tbErroRegistro).State = EntityState.Added; context.SaveChanges(); } catch (Exception e) { throw new Exception(e.Message); } } }
public ConcurrentBag <Kitdigital> AddControleImpKitItem(List <int> lstKit, string usuario, ConcurrentBag <Kitdigital> lstKitDigital, RetornoLogProcessamento retornoLogProcessamento, string nomeArquivo) { Mapeamento.Instance(); var lista = new ConcurrentBag <Kitdigital>(); var context = new Conexao(); try { context.Configuration.AutoDetectChangesEnabled = false; try { var listaDto = new ConcurrentBag <ControleImpKitItemDto>(); int cont = 0; foreach (var kit in lstKit) { var controleImpressaoKitNova = new ControleImpressaoKitNova(BuscarIdPadraoTipoKit(kit), DateTime.Now, usuario, nomeArquivo, lstKitDigital.Where(x => x.tipoKit == kit).Count()); using (TransactionScope scope2 = new TransactionScope()) { context.Entry(controleImpressaoKitNova).State = EntityState.Added; context.SaveChanges(); scope2.Complete(); } try { foreach (var item in lstKitDigital.Where(x => x.tipoKit == kit)) { TB_REGISTRO_PROCESSAMENTO tb_registro_processamento = new TB_REGISTRO_PROCESSAMENTO(retornoLogProcessamento.idLogProcessamento, "1", null); using (TransactionScope scope5 = new TransactionScope()) { context.Entry(tb_registro_processamento).State = EntityState.Added; context.SaveChanges(); scope5.Complete(); } TB_DETALHE_REGISTRO tb_detalhe_registro = new TB_DETALHE_REGISTRO(tb_registro_processamento.cd_regpss, new Repository <TB_CAMPO>().Get(x => x.nm_cam == "cdc2v").FirstOrDefault().cd_cam, item.externalKey.ToString()); using (TransactionScope scope6 = new TransactionScope()) { context.Entry(tb_detalhe_registro).State = EntityState.Added; context.SaveChanges(); scope6.Complete(); } var controle2Via = context.Controle2Via.Find(item.externalKey); string verificarErrosKit = verificarErros(item, controle2Via.cdconseg, kit); if (verificarErrosKit.Equals("ok")) { var dto = Mapper.Map <ControleImpKitItemDto>(controle2Via); dto.KitDigitalDto = Mapper.Map <KitDigitalDto>(item); dto.KitDigitalDto.idControleImpressaoKitNova = controleImpressaoKitNova.idControleImpressaoKitNova; listaDto.Add(dto); using (TransactionScope scope7 = new TransactionScope()) { tb_registro_processamento.st_regpss = "2"; tb_registro_processamento.dt_sitreg = DateTime.Now; context.Entry(tb_registro_processamento).State = EntityState.Modified; //var controle2Via = context.Controle2Via.Find(item.codigoControle); controle2Via.dtimpressao = DateTime.Now; controle2Via.indimp = "S"; context.Entry(controle2Via).State = EntityState.Modified; context.SaveChanges(); scope7.Complete(); } lista.Add(item); } else { using (TransactionScope scope8 = new TransactionScope()) { tb_registro_processamento.st_regpss = "3"; tb_registro_processamento.dt_sitreg = DateTime.Now; context.Entry(tb_registro_processamento).State = EntityState.Modified; context.SaveChanges(); //Alteração na Controle2Via para esta solicitação ser cancelada por erro na geração. LogControle2Via logControle2Via = new LogControle2Via(controle2Via.cdc2v, controle2Via.cdusuari); context.Entry(logControle2Via).State = EntityState.Added; context.SaveChanges(); controle2Via.dtimpressao = DateTime.Now; controle2Via.indimp = "C"; controle2Via.cdusuari = usuario; context.Entry(controle2Via).State = EntityState.Modified; context.SaveChanges(); //Fim Alteração TB_ERRO_REGISTRO tb_erro_registro = new TB_ERRO_REGISTRO(tb_registro_processamento.cd_regpss, 9999, verificarErrosKit); context.Entry(tb_erro_registro).State = EntityState.Added; context.SaveChanges(); scope8.Complete(); } } ++cont; if ((cont % 1000 == 0) || (cont == lstKitDigital.Count())) { if (listaDto.Count() > 0) { context = AddToContext(context, listaDto, controleImpressaoKitNova); listaDto = null; listaDto = new ConcurrentBag <ControleImpKitItemDto>(); } } } } catch (Exception e) { throw e; } using (TransactionScope scope9 = new TransactionScope()) { controleImpressaoKitNova.qtdereg = lista.Where(x => x.tipoKit == kit).Count(); context.Entry(controleImpressaoKitNova).State = EntityState.Modified; var tbLogProcessamento = context.TB_LOG_PROCESSAMENTO.Find(retornoLogProcessamento.idLogProcessamento); tbLogProcessamento.dt_fimpss = DateTime.Now; tbLogProcessamento.qt_totreg = lstKitDigital.Count(); context.Entry(tbLogProcessamento).State = EntityState.Modified; context.SaveChanges(); scope9.Complete(); } } } catch (Exception e) { throw new Exception(e.Message); } return(lista); } catch (Exception e) { throw new Exception(e.Message); } }