Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.NHibernate/NHibernateSessionPerActionAttribute.cs @ 67:c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
author | nelopauselli |
---|---|
date | Thu, 19 May 2011 01:24:56 -0300 |
parents | |
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 Agendas.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 NHibernateSessionPerActionAttribute : 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 NHibernateSessionPerActionAttribute(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 var session = _sessionFactory.OpenSession(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
19 CurrentSessionContext.Bind(session); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
20 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
21 base.OnActionExecuting(filterContext); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
22 } |
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 public override void OnResultExecuted(ResultExecutedContext filterContext) |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
25 { |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
26 base.OnResultExecuted(filterContext); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
27 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
28 var session = _sessionFactory.GetCurrentSession(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
29 |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
30 session.Flush(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
31 session.Close(); |
c8099df941bd
Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff
changeset
|
32 |
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 } |