Ejemplo n.º 1
0
        private ICollection <InformacionFiltro> DecodificarFiltro(string filterBy)
        {
            ICollection <InformacionFiltro> filtros = new List <InformacionFiltro>();

            foreach (string condicion in DecodificarParametrosFiltro(filterBy))
            {
                TipoFiltro tipoFiltro = IdentificarTipoFiltro(condicion);
                string[]   campoValor = condicion.Split(new string[] { UtilEnumeradores.IdReducidoFiltro(tipoFiltro) }, StringSplitOptions.None);

                string campo = PrimerCaracterMayuscula(campoValor[0]);
                if (!EntidadContieneAtributo(campo))
                {
                    throw new BaseException("La entidad no contiene el atributo " + campo);
                }

                string valor = campoValor[1];
                if (String.IsNullOrEmpty(valor))
                {
                    throw new BaseException("No se especificó un valor para el campo " + campo);
                }

                TipoOperador tipoOperador = IdentificarTipoOperador(filterBy, condicion);

                filtros.Add(new InformacionFiltro(campo, tipoFiltro, valor, tipoOperador));
            }

            return(filtros);
        }
Ejemplo n.º 2
0
        private TipoFiltro IdentificarTipoFiltro(string parametro)
        {
            TipoFiltro tipoFiltro;

            if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.Diferente)))
            {
                tipoFiltro = TipoFiltro.Diferente;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.Like)))
            {
                tipoFiltro = TipoFiltro.Like;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.MenorIgual)))
            {
                tipoFiltro = TipoFiltro.MenorIgual;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.MayorIgual)))
            {
                tipoFiltro = TipoFiltro.MayorIgual;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.Mayor)))
            {
                tipoFiltro = TipoFiltro.Mayor;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.Menor)))
            {
                tipoFiltro = TipoFiltro.Menor;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.NotLike)))
            {
                tipoFiltro = TipoFiltro.NotLike;
            }
            else if (parametro.Contains(UtilEnumeradores.IdReducidoFiltro(TipoFiltro.Exacto)))
            {
                tipoFiltro = TipoFiltro.Exacto;
            }
            else
            {
                throw new BaseException("Operador de comparaci�n no identificado en filtro: " + parametro);
            }
            return(tipoFiltro);
        }