public Filtro(string nomeCampo, FiltroExpressao expressao, object valorInicial, object valorFinal = null, string prefixoCampo = "") { this.campo = string.Format("{0}{1}", prefixoCampo, nomeCampo); this.filtroExpressao = expressao; this.valorInicial = valorInicial; this.valorFinal = valorFinal; }
/// <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); }
/// <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); }