/// <summary> /// Rolls back an uncommitted transaction when the object is disposed. /// </summary> public void Dispose() { if (Hibernator.HasOpenSession(SessionFactoryName)) { if ((!Transaction.WasCommitted) && (!Transaction.WasRolledBack)) { Hibernator.RollbackTransaction(SessionFactoryName); } } }
/// <summary> /// Commit the transaction. /// </summary> /// <remarks> /// If an exception is thrown during transaction commit, a rollback is /// automatically attempted before the exception bubbles up further. /// </remarks> public void Commit() { try { Hibernator.CommitTransaction(SessionFactoryName); } catch (Exception ex) { Hibernator.RollbackTransaction(SessionFactoryName); throw new HibernationException("An exception occurred while attempting to commit the transaction. Transaction has been rolled back.", ex); } }
private void EndRequestHandler(object sender, EventArgs e) { Hibernator.CloseAllSessions(); }
private void BeginRequestHandler(object sender, EventArgs e) { Hibernator.SetSessionMode(SessionStartMode.HttpRequest); }
/// <summary> /// Set our request handlers and inform Hibernator that we're running a /// web app. /// </summary> /// <param name="context"></param> public void Init(HttpApplication context) { context.BeginRequest += BeginRequestHandler; context.EndRequest += EndRequestHandler; Hibernator.SetHttpModuleDefined(true); }
public static void RestartSession(string sessionFactoryName) { Hibernator.RestartSession(sessionFactoryName); }
public static void CloseSession(string sessionFactoryName) { Hibernator.CloseSession(sessionFactoryName); }
public static void OpenSession(string sessionFactoryName) { Hibernator.OpenSession(sessionFactoryName); }
public static bool SessionExist(string sessionFactoryName) { return(Hibernator.HasOpenSession(sessionFactoryName)); }
public static IStatelessSession GetStatelessSession(string sessionFactoryName) { return(Hibernator.GetStatelessSession(sessionFactoryName)); }
public static SqlConnection GetConnection(string sessionFactoryName) { return((SqlConnection)Hibernator.GetConnection(sessionFactoryName)); }
public static string GetFactoryName(string alias) { return(Hibernator.GetFactoryName(alias)); }
/// <summary> /// Roll back the transaction. /// </summary> public void Rollback() { Hibernator.RollbackTransaction(SessionFactoryName); }
/// <summary> /// Begins a new transaction on the named Hibernator session factory, /// using the requested isolation level. /// </summary> /// <param name="factoryName"></param> /// <param name="isolationLevel"></param> public HibernationTransaction(string factoryName, IsolationLevel?isolationLevel) { this.SessionFactoryName = factoryName; this.Session = Hibernator.GetSession(factoryName); this.Transaction = Hibernator.BeginTransaction(factoryName, isolationLevel); }