view Agendas/trunk/src/Agendas.NHibernate/NHibernateSessionPerActionAttribute.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents c8099df941bd
children
line wrap: on
line source

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

namespace Agendas.NHibernate
{
	public class NHibernateSessionPerActionAttribute : ActionFilterAttribute
	{
		private readonly ISessionFactory _sessionFactory;

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

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

			base.OnActionExecuting(filterContext);
		}

		public override void OnResultExecuted(ResultExecutedContext filterContext)
		{
			base.OnResultExecuted(filterContext);

			var session = _sessionFactory.GetCurrentSession();

			session.Flush();
			session.Close();

		}
	}
}