/// <inheritdoc /> public void StoreSession(IDatabase database, ISession session) { Fail.IfArgumentNull(database, nameof(database)); Fail.IfArgumentNull(session, nameof(session)); SessionsContainer container = this.GetSessionsContainer(); container.StoreSession(database, session); }
/// <inheritdoc /> public IStatelessSession GetStatelessSession(IDatabase database) { Fail.IfArgumentNull(database, nameof(database)); SessionsContainer container = this.GetSessionsContainer(); var session = container.GetStatelessSession(database); return(session); }
private SessionsContainer GetSessionsContainer() { IContextSorage <SessionsContainer> storage = this.GetContextStorage(); SessionsContainer container = storage.Get(); if (container == null) { container = new SessionsContainer(); storage.Store(container); } return(container); }
/// <inheritdoc /> public ISession GetSession(IDatabase database) { Fail.IfArgumentNull(database, nameof(database)); SessionsContainer container = this.GetSessionsContainer(); ISession session = container.GetSession(database); if (session != null && session.IsOpen == false) { // Session is closed so lets remove it and return null container.RemoveSession(session); session = null; } return(session); }