Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Global.asax.cs @ 128:1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
(mediante CompositePublicador)
author | jorge.rowies |
---|---|
date | Mon, 04 Jul 2011 20:00:51 -0300 |
parents | db4b1e2cae49 |
children |
rev | line source |
---|---|
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
1 using System; |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
2 using System.Collections.Generic; |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
3 using System.Configuration; |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
4 using System.Web.Mvc; |
10 | 5 using System.Web.Routing; |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
6 using Agendas.Blog; |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
7 using Agendas.Blog.Impl; |
50
3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
34
diff
changeset
|
8 using AltNetHispano.Agendas.Domain; |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
19
diff
changeset
|
9 using AltNetHispano.Agendas.Factories; |
83
7e9ffde4022d
Implementando DataAnnotation desde recursos y por convención
nelopauselli
parents:
67
diff
changeset
|
10 using AltNetHispano.Agendas.Resources.Properties; |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
11 using AltNetHispano.Agendas.Twitter; |
84 | 12 using AltNetHispano.Agendas.Web.CustomModelMetadataProvider; |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
13 using Castle.MicroKernel.Registration; |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
14 using Castle.Windsor; |
10 | 15 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
19
diff
changeset
|
16 namespace AltNetHispano.Agendas.Web |
10 | 17 { |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
18 // Note: For instructions on enabling IIS6 or IIS7 classic mode, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
19 // visit http://go.microsoft.com/?LinkId=9394801 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
20 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
21 public class MvcApplication : System.Web.HttpApplication |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
22 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
23 private static void RegisterGlobalFilters(GlobalFilterCollection filters) |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
24 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
25 filters.Add(new HandleErrorAttribute()); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
26 filters.Add(AttributeFactory.GetNHibernateSessionPerAction()); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
27 } |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
28 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
29 private static void RegisterRoutes(RouteCollection routes) |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
30 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
31 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); |
10 | 32 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
33 routes.MapRoute( |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
34 "Default", // Route name |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
35 "{controller}/{action}/{id}", // URL with parameters |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
36 new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
37 ); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
38 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
39 } |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
40 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
41 private static readonly IWindsorContainer _container = new WindsorContainer(); |
10 | 42 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
43 protected void Application_Start() |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
44 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
45 InitContainer(); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
46 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
47 ModelMetadataProviders.Current = |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
48 new DataAnnotationAndConventionModelMetadataProvider( |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
49 new ResolverThroughResource<DataAnnotationResources>()); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
50 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
51 AreaRegistration.RegisterAllAreas(); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
52 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
53 RegisterGlobalFilters(GlobalFilters.Filters); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
54 RegisterRoutes(RouteTable.Routes); |
10 | 55 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
56 IdentityContext.Init(new HttpContextIdentityProvider(), AgendaFactory.GetPersonaRepository()); |
10 | 57 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
58 ConfigurarPublicadores(); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
59 } |
10 | 60 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
61 private static void InitContainer() |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
62 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
63 _container.Register( |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
64 Component.For<IPublicador>().ImplementedBy<BlogPublicador>().Named("publicadores.blog").LifeStyle.Transient, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
65 Component.For<IPublicador>().ImplementedBy<TwitterPublicador>().Named("publicadores.twitter").LifeStyle.Transient, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
66 Component.For<IPostWriterFactory>().ImplementedBy<PostWriterFactory>().LifeStyle.Transient, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
67 Component.For<IPostWriterWebService>().ImplementedBy<PostWriterWebServiceAdapter>().LifeStyle.Transient, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
68 Component.For<BlogPublicadorConfig>().Instance( |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
69 new BlogPublicadorConfig(ConfigurationManager.AppSettings["PublicadorBlog.PostWriterServiceUrl"], |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
70 ConfigurationManager.AppSettings["PublicadorBlog.BlogName"], |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
71 ConfigurationManager.AppSettings["PublicadorBlog.BlogWriterMasterKey"]) |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
72 ).LifeStyle.Transient, |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
73 Component.For<ITwitterAdapter>().ImplementedBy<TwitterAdapter>().LifeStyle.Transient |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
74 ); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
75 } |
10 | 76 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
77 private static void ConfigurarPublicadores() |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
78 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
79 var cfg = (PublicadorConfigurationSection)ConfigurationManager.GetSection("publicadoresSection"); |
19 | 80 |
128
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
81 var publicadores = new List<IPublicador>(); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
82 foreach (PublicadorConfigurationElement pubCfg in cfg.Publicadores) |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
83 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
84 if (pubCfg.Enabled) |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
85 { |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
86 var publicador = _container.Resolve<IPublicador>(pubCfg.ComponentKey); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
87 publicadores.Add(publicador); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
88 } |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
89 } |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
90 |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
91 AgendaFactory.Publicador = new CompositePublicador(publicadores); |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
92 } |
1e47bf408073
Asignacion de los publicadores configurados en web.config al factory de agenda
jorge.rowies
parents:
94
diff
changeset
|
93 } |
10 | 94 } |