view Agendas/trunk/src/Agendas.Repositories.NHibernate/NHibernateSessionPerRequestAttribute.cs @ 132:45be716763c3

Se agrega configuración para el uso de Google Calendar. OJO que no se ha puesto el valor de la password de la cuenta de GCalendar.
author alabra
date Sun, 10 Jul 2011 23:55:56 -0400
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();

		}
	}
}