using System; using System.Collections.Generic; using System.Text; using Tanshu.Accounts.Contracts; using System.Data.SqlClient; using Tanshu.Data.DAO; using System.Configuration; using Tanshu.Accounts.Entities; using Tanshu.Accounts.SqlDAO; using NHibernate.Criterion; namespace Tanshu.Accounts.Repository { public class PrintLocationBI { public void Insert(PrintLocation printLocation) { using (var session = SessionManager.Session) { session.Save(printLocation); } } public void Update(PrintLocation printLocation) { using (var session = SessionManager.Session) { session.Update(printLocation); } } public void Delete(int printLocationID) { using (var session = SessionManager.Session) { session.Delete(new PrintLocation() { PrintLocationID = printLocationID }); } } public PrintLocation GetPrintLocation(int printLocationID) { using (var session = SessionManager.Session) { return session.Get(printLocationID); } } public PrintLocation GetPrintLocation(int productGroupID, string location) { using (var session = SessionManager.Session) { return (from pl in session.QueryOver() where pl.ProductGroup.ProductGroupID == productGroupID && pl.Location == location select pl).SingleOrDefault(); //return session.CreateCriteria() // .Add(Restrictions.Eq("ProductGroupID", productGroupID)) // .Add(Restrictions.Eq("Location", location)) // .UniqueResult(); } } public PrintLocation GetPrintLocation(string location) { using (var session = SessionManager.Session) { return (from pl in session.QueryOver() where pl.Location == location && pl.ProductGroup.ProductGroupID == null select pl).SingleOrDefault(); //return session.CreateCriteria() // .Add(Restrictions.IsNull("ProductGroupID")) // .Add(Restrictions.Eq("Location", location)) // .UniqueResult(); } } public static PrintLocation BasePrinter { get { string location = ConfigurationManager.AppSettings["Location"].ToLowerInvariant(); return new PrintLocationBI().GetPrintLocation(location); } } public static PrintLocation KotPrinter(int productGroupID) { string location = ConfigurationManager.AppSettings["Location"].ToLowerInvariant(); PrintLocation p = new PrintLocationBI().GetPrintLocation(productGroupID, location); if (p == null) p = new PrintLocationBI().GetPrintLocation(location); return p; } } }