using NHibernate; using Taloyhtio.GeneralSSO.Server.CodeFiles.Entities; using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess; namespace Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories.Impl { public class AtomicRepositoryBase : RepositoryBase where TEntity : PersistentObject { private ISessionSource sessionSource; private ISession session; public AtomicRepositoryBase(ISessionSource sessionSource) { this.sessionSource = sessionSource; } protected override ISession GetSession() { if (this.session == null) { // create session on 1st request this.session = this.sessionSource.CreateSession(); } return this.session; } public override void Save(TEntity entity) { base.Save(entity); this.session.Flush(); } public override void Delete(TEntity entity) { base.Delete(entity); this.session.Flush(); } } }