2024-04-15 22:15:29 +02:00
|
|
|
|
using FluentNHibernate.Cfg;
|
|
|
|
|
using FluentNHibernate.Cfg.Db;
|
|
|
|
|
using NHibernate;
|
|
|
|
|
using NHibernate.Tool.hbm2ddl;
|
|
|
|
|
|
|
|
|
|
namespace FirmTracker_Server.nHibernate
|
|
|
|
|
{
|
|
|
|
|
public static class SessionFactory
|
|
|
|
|
{
|
|
|
|
|
private static ISessionFactory _factory;
|
|
|
|
|
|
|
|
|
|
public static NHibernate.ISession OpenSession()
|
|
|
|
|
{
|
|
|
|
|
return _factory.OpenSession();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void Init(string connectionString)
|
|
|
|
|
{
|
|
|
|
|
_factory = BuildSessionFactory(connectionString);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static ISessionFactory BuildSessionFactory(string connectionString)
|
|
|
|
|
{
|
|
|
|
|
return Fluently.Configure()
|
|
|
|
|
.Database(MsSqlConfiguration.MsSql2012
|
|
|
|
|
.ConnectionString(c => c.Is(connectionString))
|
|
|
|
|
.ShowSql())
|
2024-05-05 22:08:27 +02:00
|
|
|
|
.Mappings(m =>
|
|
|
|
|
{
|
|
|
|
|
m.FluentMappings
|
|
|
|
|
.AddFromAssemblyOf<Products.ProductMapping>()
|
2024-05-06 21:25:10 +02:00
|
|
|
|
.AddFromAssemblyOf<Transactions.TransactionMapping>()
|
2024-05-16 00:42:06 +02:00
|
|
|
|
.AddFromAssemblyOf<Transactions.TransactionProductMapping>()
|
|
|
|
|
.AddFromAssemblyOf<Transactions.Transaction2Mapping>()
|
2024-05-16 18:02:44 +02:00
|
|
|
|
.AddFromAssemblyOf<Transactions.TransactionWithProductsMapping>()
|
2024-06-08 00:24:12 +02:00
|
|
|
|
.AddFromAssemblyOf<Expenses.ExpenseMapping>()
|
2024-06-08 03:39:54 +02:00
|
|
|
|
.AddFromAssemblyOf<Reports.ReportMapping>()
|
|
|
|
|
.AddFromAssemblyOf<Reports.ReportTransactionMapping>()
|
|
|
|
|
.AddFromAssemblyOf<Reports.ReportExpenseMapping>();
|
2024-05-05 22:08:27 +02:00
|
|
|
|
})
|
2024-04-15 22:15:29 +02:00
|
|
|
|
.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true)) //SchemaUpdate . Execute dla only update
|
|
|
|
|
.BuildSessionFactory();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|