public override void OnResultExecuted(ResultExecutedContext filterContext) { try { if ((filterContext.Exception != null) && (!filterContext.ExceptionHandled)) { NHibernateHelper.RollbackTransaction(); } else { NHibernateHelper.CommitTransaction(); } } finally { NHibernateHelper.DisposeSession(); } base.OnResultExecuted(filterContext); }
private void ApplicationEndRequest(object sender, EventArgs e) { if (RequestMayNeedIterationWithPersistence(sender as HttpApplication)) { try { if (NHibernateHelper.GetCurrentSession().IsOpen&& NHibernateHelper.GetCurrentSession().Transaction.IsActive) { NHibernateHelper.CommitTransaction(); } } catch (Exception) { NHibernateHelper.RollbackTransaction(); throw; } finally { NHibernateHelper.DisposeSession(); } } }