# HG changeset patch # User jorge.rowies # Date 1309654205 10800 # Node ID 3700b77ed455b45e44e7c01c8bae6a0d1cc6cc31 # Parent 6012f2becf97e6a0cb523fd8a528aef0453188ca Configuracion de publicadores diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj --- a/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj Tue Jun 28 23:35:22 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj Sat Jul 02 21:50:05 2011 -0300 @@ -83,6 +83,7 @@ + @@ -113,6 +114,10 @@ {0973DF44-3B90-4D2A-B579-C64C93B6C853} Agendas.Repositories.NHibernate + + {319A8E3D-C61E-455F-A1BF-A6B1B1636BAB} + Agendas.Web + diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Tests/App.config --- a/Agendas/trunk/src/Agendas.Tests/App.config Tue Jun 28 23:35:22 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Tests/App.config Sat Jul 02 21:50:05 2011 -0300 @@ -1,6 +1,19 @@  + + +
+ + + + + + + + + + \ No newline at end of file diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Tests/PublicadoresConfigTests.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Tests/PublicadoresConfigTests.cs Sat Jul 02 21:50:05 2011 -0300 @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using System.Text; +using AltNetHispano.Agendas.Web; +using NUnit.Framework; + +namespace AltNetHispano.Agendas.Tests +{ + [TestFixture] + public class PublicadoresConfigTests + { + [Test] + public void TestConfig() + { + var cfg = ConfigurationManager.GetSection("publicadoresSection") as PublicadorConfigurationSection; + + Assert.IsNotNull(cfg); + Assert.AreEqual(2, cfg.Publicadores.Count); + Assert.AreEqual("Agendas.Blog.Impl.BlogPublicador", cfg.Publicadores["Blog"].GetPublicadorType().FullName); + Assert.AreEqual(false, cfg.Publicadores["Blog"].Enabled); + Assert.AreEqual("AltNetHispano.Agendas.Twitter.TwitterPublicador", cfg.Publicadores["Twitter"].GetPublicadorType().FullName); + Assert.AreEqual(true, cfg.Publicadores["Twitter"].Enabled); + } + } +} diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj --- a/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Tue Jun 28 23:35:22 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Sat Jul 02 21:50:05 2011 -0300 @@ -82,6 +82,7 @@ + @@ -165,6 +166,10 @@ + + {DDD605FF-EF42-428A-AEB6-F3496A46A82B} + Agendas.Blog + {A14907DF-02E4-4FA7-BE27-4292AF50AA22} Agendas.Domain diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Web/PublicadoresConfig.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Agendas/trunk/src/Agendas.Web/PublicadoresConfig.cs Sat Jul 02 21:50:05 2011 -0300 @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Linq; +using System.Web; +using System.Reflection; + +namespace AltNetHispano.Agendas.Web +{ + public class PublicadorConfigurationElement : ConfigurationElement + { + [ConfigurationProperty("name", IsRequired = true)] + public string Name + { + get { return (string)this["name"]; } + } + + [ConfigurationProperty("type", IsRequired = true)] + public string Type + { + get + { + return (string)this["type"]; + } + } + + public Type GetPublicadorType() + { + return System.Type.GetType((string) this["type"]); + } + + [ConfigurationProperty("enabled", IsRequired = true)] + public bool Enabled + { + get { return (bool)this["enabled"]; } + } + } + + [ConfigurationCollection(typeof(PublicadorConfigurationElement))] + public class PublicadorConfigurationCollection : ConfigurationElementCollection + { + protected override ConfigurationElement CreateNewElement() + { + return new PublicadorConfigurationElement(); + } + + protected override object GetElementKey(ConfigurationElement element) + { + var value = element as PublicadorConfigurationElement; + return value != null ? value.Name : null; + } + + public PublicadorConfigurationElement this[int index] + { + get + { + return BaseGet(index) as PublicadorConfigurationElement; + } + set + { + if (BaseGet(index) != null) + BaseRemoveAt(index); + BaseAdd(index, value); + } + } + + public new PublicadorConfigurationElement this[string name] + { + get + { + return BaseGet(name) as PublicadorConfigurationElement; + } + } + } + + public class PublicadorConfigurationSection : ConfigurationSection + { + [ConfigurationProperty("publicadores", IsRequired = true)] + public PublicadorConfigurationCollection Publicadores + { + get + { + return this["publicadores"] + as PublicadorConfigurationCollection; + } + } + } +} \ No newline at end of file diff -r 6012f2becf97 -r 3700b77ed455 Agendas/trunk/src/Agendas.Web/Web.config --- a/Agendas/trunk/src/Agendas.Web/Web.config Tue Jun 28 23:35:22 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Web/Web.config Sat Jul 02 21:50:05 2011 -0300 @@ -1,10 +1,14 @@  + For more information on how to configure your ASP.NET application, please visit + http://go.microsoft.com/fwlink/?LinkId=152368 + --> + +
+ + @@ -90,4 +94,12 @@ + + + + + + + + \ No newline at end of file