view Agendas/trunk/src/Agendas.Repositories.NHibernate/NHibernateSessionPerRequestAttribute.cs @ 99:3027c64344bd

agregado de llamadas a web service para crear posts en el blog de la comunidad agregado de tests sobre el publicador de blogs agregado de tests sobre el adapter del web service
author jorge.rowies
date Sat, 04 Jun 2011 22:33:05 -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();

		}
	}
}