using System; using System.Collections; using System.Collections.Generic; using System.Linq; using linqExpression = System.Linq.Expressions; using System.Web; using System.Web.Mvc; using Castle.MicroKernel.Registration.Interceptor; using HibernateMVCTest.Models; using NHibernate; using NHibernate.Criterion; using Queries; using Rhino.Commons; using ProductModelActiveRecord; using NHibernate.Linq; namespace HibernateMVCTest.ServiceClasses { public class QueryHandler { private IList>> _criteria; public QueryHandler() { _criteria = new List>>(); } public void AddCriteria(linqExpression.Expression> LambdaFunc) { _criteria.Add(LambdaFunc); } public IList GetList() { var query = from item in UnitOfWork.CurrentSession.Linq() select item; //Tack on our query Criteria foreach (var criterion in _criteria) { query = query.Where(criterion); } return query.ToList(); } } }