private List <LOCAL_INSTALACAO> BuscaLocaisEFilhos(DB_APRPTEntities entities, LOCAL_INSTALACAO localEnviado) { List <LOCAL_INSTALACAO> locaisFiltrados = new List <LOCAL_INSTALACAO>(); if (String.IsNullOrEmpty(localEnviado.N2)) { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1).ToList(); } else if (String.IsNullOrEmpty(localEnviado.N3)) { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2).ToList(); } else if (String.IsNullOrEmpty(localEnviado.N4)) { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 && x.N3 == localEnviado.N3).ToList(); } else if (String.IsNullOrEmpty(localEnviado.N5)) { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 && x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4).ToList(); } else if (String.IsNullOrEmpty(localEnviado.N6)) { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 && x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4 && x.N5 == localEnviado.N5).ToList(); } else { locaisFiltrados = entities.LOCAL_INSTALACAO.Where(x => x.N1 == localEnviado.N1 && x.N2 == localEnviado.N2 && x.N3 == localEnviado.N3 && x.N4 == localEnviado.N4 && x.N5 == localEnviado.N5 && x.N6 == localEnviado.N6).ToList(); } return(locaisFiltrados); }
private int CalculaRiscoGeral(DadosOperacao dadosOperacao, DB_APRPTEntities entities) { FiltroUnicoInventarioAtividadeModelo filtroVRG = new FiltroUnicoInventarioAtividadeModelo(); filtroVRG.AprAtiva = true; filtroVRG.CodAtividade = dadosOperacao.CodAtividadePadrao; filtroVRG.CodDisciplina = dadosOperacao.CodDisciplina; filtroVRG.CodLi = dadosOperacao.CodLI; int riscoGeral = aprNegocio.CalcularRiscoAprPorAtividadeDisciplinaLI(filtroVRG); return(riscoGeral); }
public PerfilModelo ListarPerfilPorId(long id) { PerfilModelo perfil = new PerfilModelo(); // Mapeia de TiposPerfis para o objeto de destino listaPerfisRetorno AutoMapper.Mapper.Map(this.perfisPersistencia.ListarTipoPerfil(id), perfil); // Busca o nome do servidor perfil.ServerName = Environment.MachineName; //Busca o nome do banco using (var entities = new DB_APRPTEntities()) { perfil.DatabaseName = entities.Database.Connection.DataSource; } return(perfil); }
private DadosOperacao VerificaValoresNaBase(APRItemSAPModelo item, DB_APRPTEntities entities) { DadosOperacao result = new DadosOperacao(); //Verifica se o local de instalação existe na base var localExistente = this.localInstalacaoPersistencia.ListarLocalInstalacaoPorNome(item.Local_Instalacao_Operacao, entities); if (localExistente == null) { throw new Exception($"O local informado para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados"); } else { result.CodLI = localExistente.CodLocalInstalacao; } //Verifica se a disciplina(Caracteristica da classe) existe na base var disciplinaExistente = this.disciplinaPersistencia.ListarDisciplinaPorNome(item.Valor_Centro_Trabalho, entities); if (disciplinaExistente == null) { throw new Exception($"A característica da classe informada para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados"); } else { result.CodDisciplina = disciplinaExistente.CodDisciplina; } //Verifica se a atividade padrão (Chave modelo) existe na base var atvPadraoExistente = this.atividadePadraoPersistencia.ListarAtividadePorNome(item.Chave_Modelo_Operacao, entities); if (atvPadraoExistente == null) { throw new Exception($"A atividade informada para a ordem-operação {item.Numero_Ordem}-{item.Operacao} não existe na base de dados"); } else { result.CodAtividadePadrao = atvPadraoExistente.CodAtividadePadrao; } return(result); }
public void InserirRascunhoInventarioAtividade(RascunhoInventarioAtividadeModelo rascunhoInventarioAtividadeModelo) { validadorRascunhoInventarioAtividade.ValidaInsercao(rascunhoInventarioAtividadeModelo); List <LOCAL_INSTALACAO> locaisInstalacao = new List <LOCAL_INSTALACAO>(); using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); for (int i = 0; i < rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE.Count; i++) { var codigoLocal = rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE[i].LocalInstalacao.CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codigoLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //List<LOCAL_INSTALACAO> locaisFilhos = //rascunhoInventarioAtividadePersistencia.BuscaFilhosPorNivel(codigoLocal, entities); locaisInstalacao.AddRange(locaisEFilhos); } this.rascunhoInventarioAtividadePersistencia.Inserir(rascunhoInventarioAtividadeModelo, entities, locaisInstalacao); entities.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }
public APRSAPResponse ProcessaOrdem(APRSAPModelo modelo) { APRSAPResponse response = new APRSAPResponse(); response.Itens = new List <APRItemSAPResponse>(); this.ValidaModelo(modelo); var statusApr = modelo.Itens.First().Status_Ordem; using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted)) { APRItemSAPResponse itemResponse = new APRItemSAPResponse(); itemResponse.Endereco_Rede = ""; APR apr = new APR(); try { if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.IMPR)) { AtualizaStatusApr(modelo.Itens.First().Numero_Ordem, (long)Constantes.StatusOrdem.IMPR, entities); } else { if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.ASAP)) { var aprBase = aprPersistencia.PesquisarPorOrdemManutencao(modelo.Itens.First().Numero_Ordem, entities); apr = aprBase; var aprBase64 = GerarAprSerializada(aprBase.NumeroSerie); itemResponse.Endereco_Rede = aprBase64; //EnviarDadosSAP(aprBase64, apr.OrdemManutencao); } else { //Verifica se já existe APR para ordem var aprExistente = aprPersistencia.PesquisarPorOrdemManutencaoExistentesEInexistentes(modelo.Itens.First().Numero_Ordem, entities); if (aprExistente == null) { apr = aprPersistencia.InserirSomenteComNumeroSeriaViaSAP(entities); apr.OrdemManutencao = modelo.Itens.First().Numero_Ordem; apr.Descricao = modelo.Itens.First().Descricao_Ordem; apr.LocalInstalacao = modelo.Itens.First().Local_Instalacao; } else { apr = aprExistente; apr.CodStatusAPR = (long)Constantes.StatusAPR.Criado; apr.LocalInstalacao = modelo.Itens.First().Local_Instalacao; apr.Descricao = modelo.Itens.First().Descricao_Ordem; this.DesativarOperacoesApr(apr, entities); } var maiorRiscoGeral = int.MinValue; foreach (var item in modelo.Itens) { OPERACAO_APR operacao = new OPERACAO_APR(); //Realiza as validações dos valores dos itens DadosOperacao dadosOperacao = this.VerificaValoresNaBase(item, entities); //Adiciona a operação na APR this.AdicionaOperacaoAPR(apr, item, dadosOperacao, entities); //Calcula o valor do risco geral da APR // Lógica para obtenção do maior risco das operações calculadas var riscoCalculado = this.CalculaRiscoGeral(dadosOperacao, entities); if (maiorRiscoGeral < riscoCalculado) { maiorRiscoGeral = riscoCalculado; } } itemResponse.VRG = maiorRiscoGeral.ToString(); apr.RiscoGeral = maiorRiscoGeral; apr.DataInicio = DateTime.Now; } } entities.SaveChanges(); transaction.Commit(); //if (statusApr == Enum.GetName(typeof(Constantes.StatusOrdem), Constantes.StatusOrdem.ASAP_CALC)) if (statusApr.ToUpper() == Constantes.StatusAPRIntegracaoOrdem.EnviarRecalcular.ToUpper()) { var aprBase64 = GerarAprSerializada(apr.NumeroSerie); itemResponse.Endereco_Rede = aprBase64; //EnviarDadosSAP(aprBase64, apr.OrdemManutencao); } itemResponse.Status = Constantes.StatusResponseIntegracao.S.ToString(); } catch (Exception ex) { transaction.Rollback(); itemResponse.Status = Constantes.StatusResponseIntegracao.E.ToString(); itemResponse.Descricao = ex.Message; throw ex; } finally { itemResponse.Numero_Serie = $"{apr.NumeroSerie}"; response.Itens.Add(itemResponse); } } } return(response); }
private void AdicionaOperacaoAPR(APR apr, APRItemSAPModelo item, DadosOperacao dadosOperacao, DB_APRPTEntities entities) { //TODO: É NECESSÁRIO APAGAR TODAS AS OPERACOES E INSERIR DE NOVO OPERACAO_APR operacao = new OPERACAO_APR(); operacao.CodAPR = apr.CodAPR; operacao.CodStatusAPR = (long)Constantes.StatusAPR.Criado; operacao.Codigo = item.Operacao; operacao.CodLI = dadosOperacao.CodLI; operacao.CodDisciplina = dadosOperacao.CodDisciplina; operacao.CodAtvPadrao = dadosOperacao.CodAtividadePadrao; operacao.Ativo = true; apr.OPERACAO_APR.Add(operacao); //Salva a operação no APR operacaoAprPersistencia.InsereOuEditaOperacaoAPR(apr.CodAPR, operacao, entities); //Salva os riscos //Riscos de Ambiente aprPersistencia.InserirRiscosAmbienteAPR(apr.CodAPR, dadosOperacao.CodLI, entities); aprPersistencia.InserirRiscosAtividadeAPR(apr.CodAPR, dadosOperacao.CodLI, dadosOperacao.CodDisciplina, dadosOperacao.CodAtividadePadrao, entities); }
private void DesativarOperacoesApr(APR apr, DB_APRPTEntities entities) { operacaoAprPersistencia.DesativarOperacoesDeApr(apr.CodAPR, entities); }
private void AtualizaStatusApr(string Numero_Ordem, long codStatusApr, DB_APRPTEntities entities) { aprPersistencia.EditarStatusApr(Numero_Ordem, codStatusApr, entities); }
public void EditarInventarioAtividade(RascunhoInventarioAtividadeModelo rascunhoInventarioAtividadeModelo) { validadorRascunhoInventarioAtividade.ValidaEdicao(rascunhoInventarioAtividadeModelo); List <LOCAL_INSTALACAO> locaisInstalacao = new List <LOCAL_INSTALACAO>(); using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); for (int i = 0; i < rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE.Count; i++) { var codigoLocal = rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE[i].LocalInstalacao.CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codigoLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //List<LOCAL_INSTALACAO> locaisFilhos = // rascunhoInventarioAtividadePersistencia.BuscaFilhosPorNivel(codigoLocal, entities); locaisInstalacao.AddRange(locaisEFilhos); } this.rascunhoInventarioAtividadePersistencia.EditarRascunhoInventarioAtividade(rascunhoInventarioAtividadeModelo, entities, locaisInstalacao, transaction); if (rascunhoInventarioAtividadeModelo.novoInventario) { // inserir inventario de verdade InventarioAtividadeModelo inventarioAtividadeModelo = new InventarioAtividadeModelo(); inventarioAtividadeModelo.CodInventarioAtividade = rascunhoInventarioAtividadeModelo.CodRascunhoInventarioAtividade; inventarioAtividadeModelo.Codigo = rascunhoInventarioAtividadeModelo.Codigo; inventarioAtividadeModelo.CodPeso = (long)rascunhoInventarioAtividadeModelo.CodPeso; inventarioAtividadeModelo.CodPerfilCatalogo = (long)rascunhoInventarioAtividadeModelo.CodPerfilCatalogo; inventarioAtividadeModelo.CodDuracao = (long)rascunhoInventarioAtividadeModelo.CodDuracao; inventarioAtividadeModelo.CodAtividade = (long)rascunhoInventarioAtividadeModelo.CodAtividade; inventarioAtividadeModelo.CodDisciplina = (long)rascunhoInventarioAtividadeModelo.CodDisciplina; inventarioAtividadeModelo.Descricao = rascunhoInventarioAtividadeModelo.Descricao; inventarioAtividadeModelo.RiscoGeral = (int)rascunhoInventarioAtividadeModelo.RiscoGeral; inventarioAtividadeModelo.ObservacaoGeral = rascunhoInventarioAtividadeModelo.ObservacaoGeral; inventarioAtividadeModelo.DataAtualizacao = DateTime.Now; inventarioAtividadeModelo.Ativo = true; List <RiscoInventarioAtividadeModelo> listaRisco = new List <RiscoInventarioAtividadeModelo>(); foreach (var itemRiscoRascunho in rascunhoInventarioAtividadeModelo.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE) { RiscoInventarioAtividadeModelo risco = new RiscoInventarioAtividadeModelo(); risco.CodInventarioAtividade = itemRiscoRascunho.CodRascunhoInventarioAtividade; risco.Ativo = true; risco.CodRiscoInventarioAtividade = itemRiscoRascunho.CodRiscoRascunhoInventarioAtividade; risco.CodRisco = itemRiscoRascunho.CodRisco; risco.CodSeveridade = itemRiscoRascunho.CodSeveridade; risco.FonteGeradora = itemRiscoRascunho.FonteGeradora; risco.ProcedimentoAplicavel = itemRiscoRascunho.ProcedimentoAplicavel; risco.ContraMedidas = itemRiscoRascunho.ContraMedidas; risco.EPIRiscoInventarioAtividadeModelo = new List <EPIRiscoInventarioAtividadeModelo>(); var listaEPI = itemRiscoRascunho.EPIRiscoRascunhoInventarioAtividadeModelo .Where(a => a.CodRiscoRascunhoInventarioAtividade == itemRiscoRascunho.CodRisco).ToList(); foreach (var itemListaEpi in listaEPI) { EPIRiscoInventarioAtividadeModelo epi = new EPIRiscoInventarioAtividadeModelo(); epi.CodEPI = itemListaEpi.CodEPI; epi.CodEpiRiscoInventarioAtividade = itemListaEpi.CodEpiRiscoRascunhoInventarioAtividade; epi.CodRiscoInventarioAtividade = itemListaEpi.CodRiscoRascunhoInventarioAtividade; risco.EPIRiscoInventarioAtividadeModelo.Add(epi); } listaRisco.Add(risco); } inventarioAtividadeModelo.RISCO_INVENTARIO_ATIVIDADE = listaRisco; List <LOCAL_INSTALACAO> novosLocais = new List <LOCAL_INSTALACAO>(); foreach (var itemNovosLocais in rascunhoInventarioAtividadeModelo.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE) { var localInst = entities.LOCAL_INSTALACAO.Where(local => local.CodLocalInstalacao == itemNovosLocais.LocalInstalacao.CodLocalInstalacao).FirstOrDefault(); novosLocais.Add(localInst); } foreach (var itemLi in novosLocais) { var unicoInventario = inventarioAtividadePersistencia.ListarInventarioAtividadePorAtividadeDisciplinaLI(inventarioAtividadeModelo.CodAtividade, inventarioAtividadeModelo.CodDisciplina, itemLi.CodLocalInstalacao, entities); if (unicoInventario != null) { var atvPadrao = atividadePersistencia.ListarAtividadePorId(inventarioAtividadeModelo.CodAtividade); var disciplina = disciplinaPersistencia.ListarDisciplinaPorId(inventarioAtividadeModelo.CodDisciplina); throw new Exception($"Já existe um inventário de atividade com atividade padrão {atvPadrao.Nome}, disciplina {disciplina.Nome} e local de instalação {itemLi.Nome}"); } } var resultadoInsercao = inventarioAtividadePersistencia.Inserir(inventarioAtividadeModelo, entities, novosLocais); inventarioAtividadeModelo.EightIDUsuarioModificador = rascunhoInventarioAtividadeModelo.EightIDUsuarioModificador; logInventarioAtividadePersistencia.Inserir(inventarioAtividadeModelo, resultadoInsercao.CodInventarioAtividade, entities); } entities.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }
public Retorno EditarRascunhoInventarioAmbiente(RascunhoInventarioAmbienteModelo rascunhoInventarioAmbienteModelo) { Retorno retornoInsercao = new Retorno(); retornoInsercao.localModelo = new List <string>(); validadorRascunhoInventarioAmbiente.ValidaEdicao(rascunhoInventarioAmbienteModelo); List <LocalInstalacaoModelo> locaisInstalacaoOrigem = new List <LocalInstalacaoModelo>(); locaisInstalacaoOrigem.AddRange(rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO); List <LocalInstalacaoModelo> locaisInstalacaoAAssociar = new List <LocalInstalacaoModelo>(); long codInventarioAmbiente = (long)rascunhoInventarioAmbienteModelo.CodRascunhoInventarioAmbiente; using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { if (!rascunhoInventarioAmbienteModelo.novoInventario) { List <string> locaisAInserir = new List <string>(); foreach (var itemLi in rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO) { locaisAInserir.Add(itemLi.CodLocalInstalacao.ToString()); } rascunhoInventarioAmbienteModelo.CodLocalInstalacao = string.Join(",", locaisAInserir); } rascunhoInventarioAmbientePersistencia.EditarRascunhoInventarioAmbiente(rascunhoInventarioAmbienteModelo, entities, transaction); if (rascunhoInventarioAmbienteModelo.novoInventario) { InventarioAmbienteModelo inventarioAmbienteModelo = new InventarioAmbienteModelo(); inventarioAmbienteModelo.CodInventarioAmbiente = (long)rascunhoInventarioAmbienteModelo.CodRascunhoInventarioAmbiente; inventarioAmbienteModelo.Codigo = rascunhoInventarioAmbienteModelo.Codigo; inventarioAmbienteModelo.CodAmbiente = (long)rascunhoInventarioAmbienteModelo.CodAmbiente; inventarioAmbienteModelo.Descricao = rascunhoInventarioAmbienteModelo.Descricao; inventarioAmbienteModelo.ObservacaoGeral = rascunhoInventarioAmbienteModelo.ObservacaoGeral; inventarioAmbienteModelo.RiscoGeral = (int)rascunhoInventarioAmbienteModelo.RiscoGeral; inventarioAmbienteModelo.DataAtualizacao = DateTime.Now; inventarioAmbienteModelo.Ativo = true; List <RiscoInventarioAmbienteModelo> listaRisco = new List <RiscoInventarioAmbienteModelo>(); foreach (var itemRiscoRascunho in rascunhoInventarioAmbienteModelo.RISCO_RASCUNHO_INVENTARIO_AMBIENTE) { RiscoInventarioAmbienteModelo risco = new RiscoInventarioAmbienteModelo(); risco.Ativo = true; risco.CodInventarioAmbiente = itemRiscoRascunho.CodRascunhoInventarioAmbiente; risco.CodRiscoInventarioAmbiente = itemRiscoRascunho.CodRascunhoRiscoInventarioAmbiente; risco.CodRiscoAmbiente = itemRiscoRascunho.CodRiscoAmbiente; risco.CodSeveridade = itemRiscoRascunho.CodSeveridade; risco.CodProbabilidade = itemRiscoRascunho.CodProbabilidade; risco.FonteGeradora = itemRiscoRascunho.FonteGeradora; risco.ProcedimentosAplicaveis = itemRiscoRascunho.ProcedimentosAplicaveis; risco.ContraMedidas = itemRiscoRascunho.ContraMedidas; risco.EPIRiscoInventarioAmbienteModelo = new List <EPIRiscoInventarioAmbienteModelo>(); var listaEPI = itemRiscoRascunho.EPIRiscoRascunhoInventarioAmbiente .Where(a => a.CodRiscoRascunhoInventarioAmbiente == itemRiscoRascunho.CodRiscoAmbiente).ToList(); foreach (var itemListaEpi in listaEPI) { EPIRiscoInventarioAmbienteModelo epi = new EPIRiscoInventarioAmbienteModelo(); epi.CodEPI = itemListaEpi.CodEPI; epi.CodEpiRiscoInventarioAmbiente = itemListaEpi.CodEpiRiscoRascunhoInventarioAmbiente; epi.CodRiscoInventarioAmbiente = itemListaEpi.CodRiscoRascunhoInventarioAmbiente; risco.EPIRiscoInventarioAmbienteModelo.Add(epi); } listaRisco.Add(risco); } inventarioAmbienteModelo.RISCO_INVENTARIO_AMBIENTE = listaRisco; List <NrInventarioAmbienteModelo> listaNR = new List <NrInventarioAmbienteModelo>(); foreach (var itemNrRascunho in rascunhoInventarioAmbienteModelo.NR_RASCUNHO_INVENTARIO_AMBIENTE) { NrInventarioAmbienteModelo nr = new NrInventarioAmbienteModelo(); nr.CodNRInventarioAmbiente = itemNrRascunho.CodNrRascunhoInventarioAmbiente; nr.CodNR = itemNrRascunho.CodNR; nr.CodInventarioAmbiente = itemNrRascunho.CodRascunhoInventarioAmbiente; nr.Ativo = true; listaNR.Add(nr); } inventarioAmbienteModelo.NR_INVENTARIO_AMBIENTE = listaNR; //Limpa os locais que vieram rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO.Clear(); //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); foreach (var local in locaisInstalacaoOrigem) { var codLocal = local.CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //Busca todos os filhos que possuam o codInventarioAmbiente //List<LOCAL_INSTALACAO> locaisFilhos = rascunhoInventarioAmbientePersistencia.BuscaFilhosPorNivelDoInventario // (local.CodLocalInstalacao, codInventarioAmbiente, entities); foreach (var localAAssociar in locaisEFilhos) { LocalInstalacaoModelo localModelo = new LocalInstalacaoModelo(); localModelo.CodInventarioAmbiente = localAAssociar.CodInventarioAmbiente; localModelo.CodLocalInstalacao = localAAssociar.CodLocalInstalacao; localModelo.CodPerfilCatalogo = localAAssociar.CodPerfilCatalogo; localModelo.CodPeso = localAAssociar.CodPeso; localModelo.Descricao = localAAssociar.Descricao; localModelo.N1 = localAAssociar.N1; localModelo.N2 = localAAssociar.N2; localModelo.N3 = localAAssociar.N3; localModelo.N4 = localAAssociar.N4; localModelo.N5 = localAAssociar.N5; localModelo.N6 = localAAssociar.N6; localModelo.Nome = localAAssociar.Nome; locaisInstalacaoAAssociar.Add(localModelo); } } inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO = new List <LocalInstalacaoModelo>(); inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO.AddRange(locaisInstalacaoAAssociar); foreach (var item in inventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO) { var li = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(item.CodLocalInstalacao); if (li.CodInventarioAmbiente != (long)Constantes.InventarioAmbiente.SEM_INVENTARIO) { retornoInsercao.status = false; retornoInsercao.localModelo.Add(li.Nome); throw new Exception($"O local de instalação {li.Nome} já possui um inventário de ambiente associado."); } } var resultadoInsercao = inventariosAmbiente.Inserir(inventarioAmbienteModelo, entities); inventarioAmbienteModelo.EightIDUsuarioModificador = rascunhoInventarioAmbienteModelo.EightIDUsuarioModificador; logInventarioAmbientePersistencia.Inserir(inventarioAmbienteModelo, resultadoInsercao.CodInventarioAmbiente, entities); } entities.SaveChanges(); transaction.Commit(); retornoInsercao.status = true; return(retornoInsercao); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }
public RetornoInsercao InserirRascunhoInventarioAmbiente(RascunhoInventarioAmbienteModelo rascunhoInventarioAmbienteModelo) { RetornoInsercao retornoInsercao = new RetornoInsercao(); retornoInsercao.localModelo = new List <string>(); validadorRascunhoInventarioAmbiente.ValidaInsercao(rascunhoInventarioAmbienteModelo); List <LocalInstalacaoModelo> locaisInstalacao = rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO; using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //Limpa os locais do inventário de modelo rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO = null; List <LOCAL_INSTALACAO> locaisComInventarios = new List <LOCAL_INSTALACAO>(); //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); List <string> locaisAInserir = new List <string>(); for (int i = 0; i < locaisInstalacao.Count; i++) { var codLocal = locaisInstalacao[i].CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //List<LOCAL_INSTALACAO> locaisFilhos = // rascunhoInventarioAmbientePersistencia.BuscaFilhosPorNivelExcetoInventario(codLocal, entities); foreach (var local in locaisEFilhos) { locaisAInserir.Add(local.CodLocalInstalacao.ToString()); } } var locaisAInserirDistinct = locaisAInserir.Distinct(); rascunhoInventarioAmbienteModelo.CodLocalInstalacao = string.Join(",", locaisAInserirDistinct); RASCUNHO_INVENTARIO_AMBIENTE inventario = rascunhoInventarioAmbientePersistencia.Inserir(rascunhoInventarioAmbienteModelo, entities); entities.SaveChanges(); transaction.Commit(); retornoInsercao.status = true; return(retornoInsercao); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }
public PerfilCatalogoSAPResponse ProcessaPerfilCatalogo(PerfilCatalogoSAPModelo modelo) { PerfilCatalogoSAPResponse response = new PerfilCatalogoSAPResponse(); response.Itens = new List <PerfilCatalogoItemSAPResponse>(); this.ValidaPerfilCatalogo(modelo); using (var entities = new DB_APRPTEntities()) { entities.Database.CommandTimeout = 9999; using (var transaction = entities.Database.BeginTransaction()) { PerfilCatalogoItemSAPResponse itemResponse = new PerfilCatalogoItemSAPResponse(); PerfilCatalogoModelo perfilCatalogo = new PerfilCatalogoModelo(); try { List <PerfilCatalogoModelo> listaPerfilCatalogo = new List <PerfilCatalogoModelo>(); foreach (var item in modelo.Itens) { listaPerfilCatalogo.Add(new PerfilCatalogoModelo() { Codigo = item.PerfilCatalogo, Nome = item.Descricao, }); } foreach (var perfil in listaPerfilCatalogo) { perfilCatalogo = perfil; var perfilExistente = perfilCatalogoPersistencia.ListarPerfilCatalogoPorCodigo(perfilCatalogo.Codigo); if (perfilExistente == null) { perfilCatalogoPersistencia.Inserir(perfilCatalogo); } else { perfilCatalogoPersistencia.Editar(perfilCatalogo, entities); } itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo; itemResponse.Descricao = ""; itemResponse.Status = Constantes.StatusResponseIntegracao.S.ToString(); response.Itens.Add(itemResponse); } entities.SaveChanges(); transaction.Commit(); return(response); } catch (Exception ex) { itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo; itemResponse.Status = Constantes.StatusResponseIntegracao.E.ToString(); itemResponse.Descricao = ex.Message; throw ex; } } } }