Exemplo n.º 1
0
        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;
                    }
                }
            }
        }