public IEnumerable <NotaCompra> Filtrar(string dataInicial, string dataFinal, Usuario usuario) { IQueryOver <NotaCompra, NotaCompra> query = Session.QueryOver <NotaCompra>(); IQueryOver <HistoricoAprovacao, Usuario> joinHistoricos = Session.QueryOver <HistoricoAprovacao>() .JoinQueryOver(x => x.Usuario) .Where(x => x.Id == usuario.Id); query = query.Where(x => x.ValorTotal >= usuario.ValorMinVistoAprovacao && x.ValorTotal <= usuario.ValorMaxVistoAprovacao && //x.StatusOperacao == usuario.Papel && x.Status == (byte)TipoStatus.Pendente); int[] ids = joinHistoricos.List().Select(x => x.NotaCompra.Id).ToArray(); query.WhereNot(x => x.Id.IsIn(ids)); if (!string.IsNullOrEmpty(dataInicial) && !string.IsNullOrEmpty(dataFinal)) { var dtInicial = DateTime.Parse(dataInicial); var dtFinal = DateTime.Parse(dataFinal); query = query.Where(x => x.DataEmissao >= dtInicial.Date && x.DataEmissao.Date <= dtFinal); } if (!string.IsNullOrEmpty(dataInicial)) { var dtInicial = DateTime.Parse(dataInicial); query = query.Where(x => x.DataEmissao >= dtInicial.Date && x.DataEmissao.Date <= DateTime.Now.Date); } if (!string.IsNullOrEmpty(dataFinal)) { var dtFinal = DateTime.Parse(dataFinal); query = query.Where(x => x.DataEmissao.Date <= dtFinal); } return(query.List()); }
public IQueryOver <TRoot, TSubType> WhereNot(Expression <Func <TSubType, bool> > expression) { MainQuery.WhereNot(expression); return(this); }
public static IQueryOver <TRoot, TSub> AddWhereNot <TRoot, TSub>(this IQueryOver <TRoot, TSub> queryOver, Expression <Func <TSub, bool> > expr) { return(queryOver.WhereNot(expr)); }