using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using NHibernate; using NHibernate.Cfg; namespace CCSTrace.CCS { public class NHibertnateSession { public static NHibertnateSession Instance { get; } = new NHibertnateSession(); private string _configurationPath = null; private ISessionFactory _sessionFactory = null; public string ConfigurationPath { get { return _configurationPath; } set { _configurationPath = value; } } public ISessionFactory SessionFactory { get { return _sessionFactory; } set { _sessionFactory = value; } } public NHibertnateSession() { } public NHibertnateSession(string configurationPath) { _configurationPath = configurationPath; } public void DefaultInitialize() { if (_configurationPath == null) _configurationPath = HttpContext.Current.Server.MapPath(@"~\DMMSNHibernate.cfg.xml"); var configuration = new Configuration(); if (_configurationPath != null) configuration.Configure(_configurationPath); configuration.SetProperty("connection.connection_string", GlobalVariable.ConnectionString); configuration.AddAssembly("CCSTrace"); /* var mappingConfigurationFile = HttpContext.Current.Server.MapPath(@"~\TPower\DMMS\Model\ADDRCONTRAST.hbm.xml"); configuration.AddFile(mappingConfigurationFile); */ _sessionFactory = configuration.BuildSessionFactory(); } public ISession OpenSession() { return _sessionFactory?.OpenSession(); } public ISession OpenSession(IDbConnection connection) { return _sessionFactory?.OpenSession(connection); } } }