narsil/Tanshu.Accounts.Repository/Fluent/SetupStore.cs
unknown d8ecec8bb6 Added inverse Attribute to ProductGroup.
BillInventory Renamed.
Refactored Bill to be more usable.
Added Bill Detail Report.
Added Open Bill and Bill Details Roles.
Zero Rate Products have Yellow background Color.
Refactored UserBI, FoodTableBI, ModifierBI, PrintLocationBI, ProductBI, ProductGroupBI, TaxBI, UserBI,
Cached the Products List.
Product and Product Group Form Working.
2011-06-23 18:17:48 +05:30

83 lines
2.7 KiB
C#

using FluentNHibernate.Automapping;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;
using NHibernate.Cfg;
using Tanshu.Accounts.Conventions;
using Tanshu.Accounts.Entities;
using Tanshu.Accounts.SqlDAO;
namespace Tanshu.Accounts.Repository
{
public sealed class SessionManager
{
private readonly Configuration cfg;
private readonly ISessionFactory factory;
private SessionManager()
{
cfg = BuildConfiguration();
factory = cfg.BuildSessionFactory();
}
public static void Initialize()
{
Nested.sessionManager.Init();
}
public static ISession Session
{
get { return Nested.sessionManager.GetSession(); }
}
public static IStatelessSession StatelessSession
{
get { return Nested.sessionManager.GetStatelessSession(); }
}
public static Configuration Configuration
{
get { return Nested.sessionManager.GetConfiguration(); }
}
private class Nested
{
static Nested() { }
internal static readonly SessionManager sessionManager = new SessionManager();
}
private Configuration GetConfiguration()
{
return cfg;
}
private Configuration BuildConfiguration()
{
var storeConfiguration = new StoreConfiguration();
var persistenceModel = AutoMap.AssemblyOf<Voucher>(storeConfiguration)
.Conventions.Setup(c =>
{
c.Add<PrimaryKeyConvention>();
c.Add<CustomForeignKeyConvention>();
c.Add<ClassConvention>();
c.Add<CascadeConvention>();
c.Add<UniqueConvention>();
c.Add<NotNullConvention>();
c.Add<FormulaConvention>();
c.Add<InverseConvention>();
//c.Add<AllowNullConvention>();
c.Add<EnumConvention>();
});
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ConnectionString(p => p.FromConnectionStringWithKey("FluentCon")))
.Mappings(m => m.AutoMappings.Add(persistenceModel))
.BuildConfiguration()
.SetInterceptor(new NHSQLInterceptor());
}
private void Init()
{ }
private ISession GetSession()
{
return factory.OpenSession();
}
private IStatelessSession GetStatelessSession()
{
return factory.OpenStatelessSession();
}
}
}