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); }