Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Repositories.NHibernate/NHibernateSessionPerRequestAttribute.cs @ 182:beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
author | nelopauselli |
---|---|
date | Mon, 08 Aug 2011 21:57:10 -0300 |
parents | c8099df941bd |
children |
rev | line source |
---|---|
67
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
1 using System.Web.Mvc; |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
2 using NHibernate; |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
3 using NHibernate.Context; |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
4 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
5 namespace AltNetHispano.Agendas.Repositories.NHibernate |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
6 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
7 public class NHibernateSessionPerRequestAttribute: ActionFilterAttribute |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
8 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
9 private readonly ISessionFactory _sessionFactory; |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
10 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
11 public NHibernateSessionPerRequestAttribute(ISessionFactory sessionFactory) |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
12 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
13 _sessionFactory = sessionFactory; |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
14 } |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
15 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
16 public override void OnActionExecuting(ActionExecutingContext filterContext) |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
17 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
18 //iniciar session |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
19 var session = _sessionFactory.OpenSession(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
20 CurrentSessionContext.Bind(session); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
21 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
22 base.OnActionExecuting(filterContext); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
23 } |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
24 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
25 public override void OnResultExecuted(ResultExecutedContext filterContext) |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
26 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
27 base.OnResultExecuted(filterContext); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
28 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
29 //cerrar session |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
30 var session = _sessionFactory.GetCurrentSession(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
31 session.Flush(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
32 session.Close(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
33 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
34 } |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
35 } |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
36 } |