# 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