public List <RascunhoInventarioAtividadeModelo> ListarInventarioAtividade(FiltroInventarioAtividadeModelo filtroInventarioAtividadeModelo)
        {
            List <RascunhoInventarioAtividadeModelo> inventarioAtividadeModelo = new List <RascunhoInventarioAtividadeModelo>();

            //ValidarFiltro(filtroInventarioAtividadeModelo);

            IEnumerable <RASCUNHO_INVENTARIO_ATIVIDADE> inv = this.rascunhoInventarioAtividadePersistencia.ListarRascunhoInventarioAtividade(filtroInventarioAtividadeModelo);

            if (inv == null)
            {
                throw new KeyNotFoundException("Rascunho de inventário de atividade não encontrado.");
            }

            foreach (RASCUNHO_INVENTARIO_ATIVIDADE inventario in inv)
            {
                inventarioAtividadeModelo.Add(MapeamentoRascunhoInventarioAtividade(inventario));
            }

            return(inventarioAtividadeModelo);
        }
        public IHttpActionResult Filtrar([FromBody] FiltroInventarioAtividadeModelo filtroInventarioAtividadeModelo)
        {
            List <RascunhoInventarioAtividadeModelo> inventarioAtividade;

            try
            {
                inventarioAtividade = this.rascunhoInventarioAtividadeNegocio.ListarInventarioAtividade(filtroInventarioAtividadeModelo);

                if (inventarioAtividade.Count == 0)
                {
                    throw new Exception("Não foram encontrados rascunhos de inventários com o(s) filtro(s) selecionado(s)");
                }
            }
            catch (Exception exception)
            {
                throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.BadRequest,
                                                                                $"Erro ao listar rascunho de inventário de atividade.", exception), exception);
            }
            return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK,
                                                              $"Recuperação do rascunho do inventário de atividade ocorrida com sucesso", inventarioAtividade)));
        }
Example #3
0
        public IEnumerable <RASCUNHO_INVENTARIO_ATIVIDADE> ListarRascunhoInventarioAtividade(FiltroInventarioAtividadeModelo filtroInventarioAtividadeModelo)
        {
            using (var entities = new DB_LaborSafetyEntities())
            {
                var resultado = entities.RASCUNHO_INVENTARIO_ATIVIDADE
                                .Include(x => x.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE.Select(risco => risco.RISCO))
                                .Include(x => x.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE.Select(risco => risco.RISCO).Select(tpr => tpr.TIPO_RISCO))
                                .Include(x => x.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE.Select(risco => risco.EPI_RISCO_RASCUNHO_INVENTARIO_ATIVIDADE))
                                .Include(x => x.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE.Select(local => local.LOCAL_INSTALACAO))
                                .ToList();

                if (filtroInventarioAtividadeModelo.CodAtividade != 0)
                {
                    resultado = resultado.Where(o => o.CodAtividade == filtroInventarioAtividadeModelo.CodAtividade)
                                .ToList();
                }

                if (filtroInventarioAtividadeModelo.CodDisciplina != 0)
                {
                    resultado = resultado.Where(o => o.CodDisciplina == filtroInventarioAtividadeModelo.CodDisciplina)
                                .ToList();
                }

                if (filtroInventarioAtividadeModelo.CodPeso != 0)
                {
                    resultado = resultado.Where(o => o.CodPeso == filtroInventarioAtividadeModelo.CodPeso)
                                .ToList();
                }

                if (filtroInventarioAtividadeModelo.CodPerfilCatalogo != 0)
                {
                    resultado = resultado.Where(o => o.CodPerfilCatalogo == filtroInventarioAtividadeModelo.CodPerfilCatalogo)
                                .ToList();
                }

                if (filtroInventarioAtividadeModelo.Locais.Count > 0)
                {
                    List <LOCAL_INSTALACAO> locaisOrigem     = new List <LOCAL_INSTALACAO>();
                    List <LOCAL_INSTALACAO> locaisAPesquisar = new List <LOCAL_INSTALACAO>();
                    //Busca todos os locais
                    List <LOCAL_INSTALACAO> locais = entities.LOCAL_INSTALACAO
                                                     .Where(x => x.CodLocalInstalacao != (long)Constantes.LocalInstalacao.SEM_ASSOCIACAO)
                                                     .ToList();

                    foreach (var nlocal in filtroInventarioAtividadeModelo.Locais)
                    {
                        var local = entities.LOCAL_INSTALACAO.Where(x => x.CodLocalInstalacao == nlocal).FirstOrDefault();

                        if (local == null)
                        {
                            throw new Exception($"O local {local.Nome} não consta na base de dados.");
                        }

                        locaisOrigem.Add(local);
                    }

                    //Busca filhos dos locais
                    foreach (var local in locaisOrigem)
                    {
                        List <LOCAL_INSTALACAO> locaisFilhos = this.BuscaLocaisEFilhos(locais, local);
                        locaisAPesquisar.AddRange(locaisFilhos);
                    }

                    resultado = resultado.Where(b => b.LOCAL_INSTALACAO_RASCUNHO_INVENTARIO_ATIVIDADE.Any
                                                    (x => locaisAPesquisar.Contains(x.LOCAL_INSTALACAO))).ToList();
                }

                if (filtroInventarioAtividadeModelo.CodSeveridade != 0)
                {
                    resultado = resultado.Where(x => x.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE.Any(y => y.CodSeveridade == filtroInventarioAtividadeModelo.CodSeveridade))
                                .ToList();
                }

                if (filtroInventarioAtividadeModelo.Riscos.Count != 0 || filtroInventarioAtividadeModelo.Riscos == null)
                {
                    foreach (var risco in filtroInventarioAtividadeModelo.Riscos)
                    {
                        resultado = resultado.Where(a => a.RISCO_RASCUNHO_INVENTARIO_ATIVIDADE.Any(x => x.RISCO.CodRisco == risco))
                                    .ToList();
                    }
                }

                return(resultado);
            }
        }