public List <EPIRiscoInventarioAtividadeModelo> ListarEPIsPorRisco(long codRisco) { List <EPI_RISCO_INVENTARIO_ATIVIDADE> epis = epiPersistencia.ListarEPIPorRisco(codRisco); if (epis == null) { throw new KeyNotFoundException($@" EPI(s) não encontrado(s) para o risco {codRisco}."); } List <EPIRiscoInventarioAtividadeModelo> result = new List <EPIRiscoInventarioAtividadeModelo>(); foreach (var epi in epis) { EPIRiscoInventarioAtividadeModelo epiRiscoInventarioAtividadeModelo = new EPIRiscoInventarioAtividadeModelo(); epiRiscoInventarioAtividadeModelo.CodEpiRiscoInventarioAtividade = epi.CodRiscoInventarioAtividade; epiRiscoInventarioAtividadeModelo.CodRiscoInventarioAtividade = epi.CodRiscoInventarioAtividade; epiRiscoInventarioAtividadeModelo.CodEPI = epi.CodEPI; result.Add(epiRiscoInventarioAtividadeModelo); } return(result); }
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; } } } }