public Resultados <LocalVistoriaListar> Filtrar(LocalVistoriaListar filtrosListar, Paginacao paginacao)
        {
            try
            {
                Filtro <LocalVistoriaListar>     filtro     = new Filtro <LocalVistoriaListar>(filtrosListar, paginacao);
                Resultados <LocalVistoriaListar> resultados = _da.Filtrar(filtro);

                if (resultados.Quantidade < 1)
                {
                    Validacao.Add(Mensagem.Padrao.NaoEncontrouRegistros);
                }

                return(resultados);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        internal Resultados <LocalVistoriaListar> Filtrar(Filtro <LocalVistoriaListar> filtros)
        {
            Resultados <LocalVistoriaListar> retorno = new Resultados <LocalVistoriaListar>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                string  comandtxt    = string.Empty;
                string  esquemaBanco = (string.IsNullOrEmpty(EsquemaBanco) ? "" : EsquemaBanco + ".");
                Comando comando      = bancoDeDados.CriarComando("");

                #region Adicionando Filtros

                comandtxt += comando.FiltroAndLike("s.nome", "nome_setor", filtros.Dados.SetorTexto, true, true);
                comandtxt += comando.FiltroAnd("lv.dia_semana", "dia_semana", filtros.Dados.DiaSemanaId);

                List <String> ordenar = new List <String>();
                List <String> colunas = new List <String>()
                {
                    "nome_setor", "dia_semana"
                };

                if (filtros.OdenarPor > 0)
                {
                    ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1));
                }
                else
                {
                    ordenar.Add("nome_setor");
                }

                #endregion

                #region Quantidade de registro do resultado

                comando.DbCommand.CommandText = String.Format(@"select count(distinct(lv.setor)) from {0}cnf_local_vistoria lv, {0}tab_setor s where s.id=lv.setor and lv.situacao <> 0 and lv.id > 0  " + comandtxt, esquemaBanco);

                retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));

                comando.AdicionarParametroEntrada("menor", filtros.Menor);
                comando.AdicionarParametroEntrada("maior", filtros.Maior);


                comandtxt = String.Format(@"select distinct(lv.setor) setor_id, s.nome nome_setor 
                                            from {0}cnf_local_vistoria lv, {0}tab_setor s where s.id=lv.setor and lv.situacao <> 0" + comandtxt + DaHelper.Ordenar(colunas, ordenar), esquemaBanco);

                comando.DbCommand.CommandText = @"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor";

                #endregion

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    LocalVistoriaListar item;

                    while (reader.Read())
                    {
                        item = new LocalVistoriaListar();

                        item.SetorID    = reader.GetValue <int>("setor_id");
                        item.SetorTexto = reader.GetValue <string>("nome_setor");
                        retorno.Itens.Add(item);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }