using System; using System.Collections.Generic; using System.Linq.Expressions; using Tanshu.Accounts.Entities; using NHibernate; namespace Tanshu.Accounts.Repository { public class ProductGroupBI : FluentGenericBase { public ProductGroupBI() : base() { } public ProductGroupBI(bool beginTransaction) : base(beginTransaction) { } public ProductGroupBI(ISession session) : base(session) { } public ProductGroupBI(ISession session, bool beginTransaction) : base(session, beginTransaction) { } public new IList List() { return Query() .OrderBy(x => x.SortOrder).Asc .ThenBy(x => x.Name).Asc .List(); } public new IList List(Expression> query) { return Query() .Where(query) .OrderBy(x => x.SortOrder).Asc .ThenBy(x => x.Name).Asc .List(); } public IList GetProductGroupTypes() { const string query = @"select distinct(pg.GroupType) from ProductGroup pg order by pg.GroupType"; var hnq = Session.CreateQuery(query); return hnq.List(); } public ProductGroup GetProductGroupOfProduct(int productID) { using (var session = SessionManager.Session) { var item = (from p in session.QueryOver() where p.ProductID == productID select p.ProductGroup).SingleOrDefault(); NHibernateUtil.Initialize(item); return item; } } } }