view Agendas/trunk/src/Agendas.Repositories.NHibernate/NHibernateSessionPerRequestAttribute.cs @ 92:7027cda13de3

Armado de la url de retorno en base a la url del request
author Nelo@Kenia.neluz.int
date Fri, 03 Jun 2011 23:58:03 -0300
parents c8099df941bd
children
line wrap: on
line source

using System.Web.Mvc;
using NHibernate;
using NHibernate.Context;

namespace AltNetHispano.Agendas.Repositories.NHibernate
{
	public class NHibernateSessionPerRequestAttribute: ActionFilterAttribute
	{
		private readonly ISessionFactory _sessionFactory;

		public NHibernateSessionPerRequestAttribute(ISessionFactory sessionFactory)
		{
			_sessionFactory = sessionFactory;
		}

		public override void OnActionExecuting(ActionExecutingContext filterContext)
		{
			//iniciar session
			var session = _sessionFactory.OpenSession();
			CurrentSessionContext.Bind(session);

			base.OnActionExecuting(filterContext);
		}

		public override void OnResultExecuted(ResultExecutedContext filterContext)
		{
			base.OnResultExecuted(filterContext);
			
			//cerrar session
			var session = _sessionFactory.GetCurrentSession();
			session.Flush();
			session.Close();

		}
	}
}