annotate Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs @ 126:6012f2becf97

Se agrega instalación de nuget package para el calendario de google.
author alabra
date Tue, 28 Jun 2011 23:35:22 -0400
parents 0bca45e1e664
children 2d1adbaf0373
rev   line source
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents: 94
diff changeset
1 using AltNetHispano.Agendas.Domain;
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
2 using ConfOrm;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
3 using ConfOrm.NH;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
4 using NHibernate;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
5 using NHibernate.Cfg;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
6 using NHibernate.Tool.hbm2ddl;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
7
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
8 namespace Agendas.NHibernate
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
9 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
10 public static class NhHelper
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
11 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
12 private static ISessionFactory _sessionfactory;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
13 private static Configuration _cfg;
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 public static Configuration GetConfiguration()
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
16 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
17 if (_cfg == null)
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
18 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
19 var orm = new ObjectRelationalMapper();
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 80
diff changeset
20 orm.TablePerClass<Persona>();
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
21 orm.TablePerClass<Evento>();
80
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
22 orm.TablePerClass<Track>();
111
90ce239cfa6d Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents: 94
diff changeset
23 orm.TablePerClass<TrackLog>();
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 80
diff changeset
24 orm.TablePerClass<Cuenta>();
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
25
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 80
diff changeset
26 orm.Cascade<Evento, Persona>(Cascade.None);
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 80
diff changeset
27 orm.Cascade<Persona, Evento>(Cascade.None);
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 80
diff changeset
28
112
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 111
diff changeset
29 orm.Cascade<Persona, Cuenta>(Cascade.All | Cascade.DeleteOrphans);
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
30
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
31 var mapper = new Mapper(orm);
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 var mapping = mapper.CompileMappingFor(typeof(Evento).Assembly.GetTypes());
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 _cfg = new Configuration();
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
36 _cfg.Configure();
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
37 _cfg.AddDeserializedMapping(mapping, null);
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
38 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
39 return _cfg;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
40 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
41
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
42 public static ISessionFactory GetSessionFactory()
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
43 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
44 if (_sessionfactory == null)
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
45 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
46 var cfg = GetConfiguration();
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
47
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
48 #if DEBUG
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
49 var schemaValidator = new SchemaValidator(cfg);
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
50 try
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
51 {
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
52 schemaValidator.Validate();
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
53 }
80
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
54 catch
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
55 {
80
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
56 try
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
57 {
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
58 var schemaUpdate = new SchemaUpdate(cfg);
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
59 schemaUpdate.Execute(false, true);
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
60
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
61 schemaValidator.Validate();
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
62 }
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
63 catch
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
64 {
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
65 var schemaExport = new SchemaExport(cfg);
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
66 schemaExport.Create(false, true);
c2d98fd6593f Track como objeto identificable y con referencia al evento correspondiente.
nelopauselli
parents: 67
diff changeset
67 }
67
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
68 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
69
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
70 #endif
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
71
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
72 _sessionfactory = cfg.BuildSessionFactory();
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
73 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
74 return _sessionfactory;
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
75 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
76 }
c8099df941bd Implementando persistencia con NHibernate en el proyecto web
nelopauselli
parents:
diff changeset
77 }