Пример #1
0
 /// <summary>Veja AbrirGrupo()</summary>
 public Filtros FecharGrupo(FiltrosOperador operador = FiltrosOperador.And)
 {
     RemoverOperadorDoFinal();
     sbFiltros.Append(")");
     AdicionarOperador(operador);
     sbFiltros.Append("\n");
     return(this);
 }
Пример #2
0
        // adiciona um operador, uso interno
        private void AdicionarOperador(FiltrosOperador operador)
        {
            switch (operador)
            {
            case FiltrosOperador.And: sbFiltros.Append(" and"); break;

            case FiltrosOperador.Or: sbFiltros.Append(" or"); break;
            }
        }
Пример #3
0
        /// <summary>
        /// Veja o outro overload para descrição e exemplo de uso.
        /// </summary>
        protected Filtros Add(string campo, FiltroExpressao expressao, object valorInicial, string prefixoCampo = "", object valorFinal = null, FiltrosOperador operador = FiltrosOperador.And)
        {
            Filtro filtro = new Filtro(campo, expressao, valorInicial, valorFinal, prefixoCampo);

            sbFiltros.Append(filtro.ToString());
            AdicionarOperador(operador);
            return(this);
        }
Пример #4
0
        /// <summary>
        /// adiciona um filtro usando esquema de LIKE
        /// Pessoa p = new Pessoa();
        /// Filtros f = new Filtros();
        /// f.AddLike(() => p.Nome, p, "M");
        /// </summary>
        /// <param name="exp">Propridade em formato expressão Lambda (() => x.Nome)</param>
        /// <param name="obj">Instância do objeto que contém a propriedade do primeiro parâmetro (ex: p)</param>
        /// <param name="conteudoFiltro">Valor para o filtro ("Maria")</param>
        /// <param name="operador">FiltroOperador.And ou FiltroOperador.Or</param>
        public Filtros AddLike <T>(Expression <Func <T> > exp, string conteudoFiltro, string prefixoCampo = "", FiltrosOperador operador = FiltrosOperador.And)
        {
            string campo = Auxiliar.GetFieldName(exp, objetoModel);

            sbFiltros.Append(SqlUtil.MontarLike(prefixoCampo + campo, conteudoFiltro));
            AdicionarOperador(operador);
            return(this);
        }
Пример #5
0
        /// <summary>
        /// adiciona um filtro com between para usar com select, use toString para pegar o filtro completo
        /// para os parâmetros abaixo, tenha por exemplo:
        /// Pessoa p = new Pessoa();
        /// Filtros f = new Filtros(p);
        /// f.AddEntre(() => p.Valor, 1, 20);
        /// </summary>
        /// <param name="exp">Propridade em formato expressão Lambda (() => x.Nome)</param>
        /// <param name="valorInicial">Valor inicial para o filtro (numeros ou datas)</param>
        /// <param name="valorFinal">Valor inicial para o filtro (numeros ou datas)</param>
        /// <param name="prefixoCampo">quando é um join que campo repete em mais tabelas coloque um prefixo</param>
        /// <param name="operador">FiltroOperador.And ou FiltroOperador.Or - apenas para se usar mais de um filtro</param>
        public Filtros AddEntre <T>(Expression <Func <T> > exp, object valorInicial, object valorFinal, string prefixoCampo = "", FiltrosOperador operador = FiltrosOperador.And)
        {
            string campo = Auxiliar.GetFieldName(exp, objetoModel);

            this.Add(campo, FiltroExpressao.Entre, valorInicial, prefixoCampo, valorFinal, operador);
            return(this);
        }
Пример #6
0
        /// <summary>
        /// adiciona um filtro para usar com select, use toString para pegar o filtro completo
        /// para os parâmetros abaixo, tenha por exemplo:
        /// Pessoa p = new Pessoa();
        /// Filtros f = new Filtros(p);
        /// f.Add(() => p.Nome, FiltroExpressao.ComecaCom, "M");
        /// </summary>
        /// <param name="exp">Propridade em formato expressão Lambda (() => x.Nome)</param>
        /// <param name="conteudoFiltro">Valor para o filtro (100, "Maria", etc)</param>
        /// <param name="expressao">FiltroExpressao.*</param>
        /// <param name="prefixoCampo">quando é um join que campo repete em mais tabelas coloque um prefixo</param>
        /// <param name="operador">FiltroOperador.And ou FiltroOperador.Or - apenas para se usar mais de um filtro</param>
        public Filtros Add <T>(Expression <Func <T> > exp, object conteudoFiltro, FiltroExpressao expressao = FiltroExpressao.Igual, string prefixoCampo = "", FiltrosOperador operador = FiltrosOperador.And)
        {
            string campo = Auxiliar.GetFieldName(exp, objetoModel);

            this.Add(campo, expressao, conteudoFiltro, prefixoCampo, null, operador);
            return(this);
        }