Esempio 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);
        }
Esempio n. 2
0
        private ICollection <InformacionOrdenamiento> DecodificarOrdenamiento(string orderBy)
        {
            ICollection <InformacionOrdenamiento> ordenamiento = new List <InformacionOrdenamiento>();

            foreach (string orden in DecodificarParametrosOrdedBy(orderBy))
            {
                string[] campoDireccion = orden.Split(UtilConstantes.SeparadorOrderBy.ToCharArray());
                string   campo          = PrimerCaracterMayuscula(campoDireccion[0]);
                if (!EntidadContieneAtributo(campo))
                {
                    throw new BaseException("La entidad no contiene el atributo " + campo);
                }

                TipoOrdenamiento tipoOrdenamiento;
                if (campoDireccion.Length == 2)
                {
                    tipoOrdenamiento = UtilEnumeradores.TipoOrdenamientoPorId(campoDireccion[1]);
                }
                else if (campoDireccion.Length == 1)
                {
                    tipoOrdenamiento = TipoOrdenamiento.Ascendente;
                }
                else
                {
                    throw new BaseException("El parametro especificado para el campo: " + campo + ", tiene un error de sintaxis.");
                }
                ordenamiento.Add(new InformacionOrdenamiento(tipoOrdenamiento, campo));
            }
            return(ordenamiento);
        }
Esempio n. 3
0
        private TipoOperador IdentificarTipoOperador(string filterBy, string condicion)
        {
            int index = filterBy.IndexOf(condicion, StringComparison.CurrentCultureIgnoreCase);

            if (index + condicion.Length == filterBy.Length)
            {
                return(TipoOperador.And);
            }
            else
            {
                return(UtilEnumeradores.TipoOperadorPorId(filterBy.ElementAt(index + condicion.Length).ToString()));
            }
        }
Esempio n. 4
0
        private ICollection <string> DecodificarParametrosFiltro(string filterBy)
        {
            ICollection <string> parametros = new List <string>();

            foreach (string temp in filterBy.Split(new string[] { UtilEnumeradores.IdReducidoOperador(TipoOperador.And) }, StringSplitOptions.None))
            {
                string[] x = temp.Split(UtilEnumeradores.IdReducidoOperador(TipoOperador.Or).ToArray());
                foreach (String elem in x)
                {
                    parametros.Add(elem);
                }
            }
            return(parametros);
        }
Esempio n. 5
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);
        }