changeset 274:72a96459f910

Ticket #123: Patrocinadores de las vans.
author juanjose.montesdeocaarbos
date Wed, 30 Nov 2011 08:56:01 -0300
parents a7420f05716a
children bf993f99cee3
files Agendas/trunk/db/v1.1/02 - Patrocinadores.sql Agendas/trunk/src/Agendas.Domain/Agenda.cs Agendas/trunk/src/Agendas.Domain/Evento.cs Agendas/trunk/src/Agendas.Domain/Patrocinador.cs Agendas/trunk/src/Agendas.Domain/Repositories/IPatrocinadorRepository.cs Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs Agendas/trunk/src/Agendas.Repositories.Memory/PatrocinadorRepository.cs Agendas/trunk/src/Agendas.Repositories.NHibernate/PatrocinadorRepository.cs Agendas/trunk/src/Agendas.Repositories.Tests/Agendas.Repositories.Tests.csproj Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/IInfraestrutureFactory.cs Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/MemoryInfraestrutureFactory.cs Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhHelperTest.cs Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhInfraestrutureFactory.cs Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrud.cs Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudMemoryTests.cs Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudNhTests.cs Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs Agendas/trunk/src/Agendas.Repositories.Tests/WorkflowTests.cs Agendas/trunk/src/Agendas.Repositories.Tests/images/apress.gif Agendas/trunk/src/Agendas.Tests/AgendarTests.cs Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs Agendas/trunk/src/Agendas.Tests/PonentesTests.cs Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs Agendas/trunk/src/Agendas.Tests/TestBase.cs Agendas/trunk/src/Agendas.Tests/TrackTests.cs Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Agendas/trunk/src/Agendas.Twitter.Tests/Recordatorios_tests.cs Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs
diffstat 31 files changed, 500 insertions(+), 427 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/db/v1.1/02 - Patrocinadores.sql	Wed Nov 30 08:56:01 2011 -0300
@@ -0,0 +1,45 @@
+/****** Object:  Table [dbo].[Patrocinador]    Script Date: 11/30/2011 07:46:21 ******/
+IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Patrocinador_Evento]') AND parent_object_id = OBJECT_ID(N'[dbo].[Patrocinador]'))
+ALTER TABLE [dbo].[Patrocinador] DROP CONSTRAINT [FK_Patrocinador_Evento]
+GO
+
+/****** Object:  Table [dbo].[Patrocinador]    Script Date: 11/30/2011 07:46:35 ******/
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Patrocinador]') AND type in (N'U'))
+DROP TABLE [dbo].[Patrocinador]
+GO
+
+
+SET ANSI_NULLS ON
+GO
+
+SET QUOTED_IDENTIFIER ON
+GO
+
+SET ANSI_PADDING ON
+GO
+
+CREATE TABLE [dbo].[Patrocinador](
+	[Id] [uniqueidentifier] NOT NULL,
+	[Nombre] [nvarchar](255) NULL,
+	[Logo] [varbinary](8000) NULL,
+	[evento_key] [uniqueidentifier] NULL,
+	[idx] [int] NULL,
+PRIMARY KEY CLUSTERED 
+(
+	[Id] ASC
+)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
+) ON [PRIMARY]
+
+GO
+
+SET ANSI_PADDING OFF
+GO
+
+ALTER TABLE [dbo].[Patrocinador]  WITH CHECK ADD  CONSTRAINT [FK_Patrocinador_Evento] FOREIGN KEY([evento_key])
+REFERENCES [dbo].[Evento] ([Id])
+GO
+
+ALTER TABLE [dbo].[Patrocinador] CHECK CONSTRAINT [FK_Patrocinador_Evento]
+GO
+
+
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -10,15 +10,15 @@
     {
         private readonly IEventoRepository _eventosRepository;
         private readonly IPersonaRepository _personaRepository;
-        //private readonly IPatrocinadorRepository _patrocinadorRepository;
+		private readonly IPatrocinadorRepository _patrocinadorRepository;
 
         private readonly IPublicador _publicador;
 
         public Agenda(IPublicador publicador, IEventoRepository eventosRepository,
-                      IPersonaRepository personaRepository)
+					  IPersonaRepository personaRepository, IPatrocinadorRepository patrocinadorRepository)
         {
             _publicador = publicador;
-            //_patrocinadorRepository = patrocinadorRepository;
+			_patrocinadorRepository = patrocinadorRepository;
             _personaRepository = personaRepository;
             _eventosRepository = eventosRepository;
         }
@@ -260,34 +260,34 @@
 			return new EventoResultado(true,"Evento re-agendado", warnings);
 		}
 
-		//public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores)
-		//{
-		//    var evento = GetEvento(eventoId);
+		public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores)
+		{
+			var evento = GetEvento(eventoId);
 
-		//    var agregar = new List<Patrocinador>();
-		//    var quitar = new List<Patrocinador>();
+			var agregar = new List<Patrocinador>();
+			var quitar = new List<Patrocinador>();
 
-		//    foreach (var patrocinadorId in patrocinadores)
-		//    {
-		//        if (!evento.Patrocinadores.Any(p => p.Id == patrocinadorId))
-		//        {
-		//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
-		//            agregar.Add(patrocinador);
-		//        }
-		//    }
+			foreach (var patrocinadorId in patrocinadores)
+			{
+				if (!evento.Patrocinadores.Any(p => p.Id == patrocinadorId))
+				{
+					var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+					agregar.Add(patrocinador);
+				}
+			}
 
-		//    foreach (var patrocinador in evento.Patrocinadores)
-		//    {
-		//        if (!patrocinadores.Any(p => p == patrocinador.Id))
-		//            quitar.Add(patrocinador);
-		//    }
+			foreach (var patrocinador in evento.Patrocinadores)
+			{
+				if (!patrocinadores.Any(p => p == patrocinador.Id))
+					quitar.Add(patrocinador);
+			}
 
-		//    foreach (var patrocinador in agregar)
-		//        evento.AddPatrocinador(patrocinador);
+			foreach (var patrocinador in agregar)
+				evento.AddPatrocinador(patrocinador);
 
-		//    foreach (var patrocinador in quitar)
-		//        evento.RemovePatrocinador(patrocinador);
-		//}
+			foreach (var patrocinador in quitar)
+				evento.RemovePatrocinador(patrocinador);
+		}
 
 		private void Notify(Evento evento)
 		{
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -10,7 +10,7 @@
 		{
 			_tracks = new List<Track>();
 			_ponentes = new List<Persona>();
-			//_patrocinadores = new List<Patrocinador>();
+			_patrocinadores = new List<Patrocinador>();
 		}
 
 		#region Propiedades del Evento
@@ -72,17 +72,17 @@
 			set { _estado = value; }
 		}
 
-		//private IList<Patrocinador> _patrocinadores;
+		private IList<Patrocinador> _patrocinadores;
 
 		public virtual TipoEvento Tipo { get; private set; }
 
-		//public virtual IEnumerable<Patrocinador> Patrocinadores
-		//{
-		//    get
-		//    {
-		//        return _patrocinadores;
-		//    }
-		//}
+		public virtual IEnumerable<Patrocinador> Patrocinadores
+		{
+			get
+			{
+				return _patrocinadores;
+			}
+		}
 
 		/// <summary>
 		/// Determina la duración de un evento.
@@ -122,15 +122,15 @@
 				AddTrack(new Track(this, action.Value));
 		}
 
-		//protected internal virtual void AddPatrocinador(Patrocinador patrocinador)
-		//{
-		//    _patrocinadores.Add(patrocinador);
-		//}
+		protected internal virtual void AddPatrocinador(Patrocinador patrocinador)
+		{
+			_patrocinadores.Add(patrocinador);
+		}
 
-		//protected internal virtual void RemovePatrocinador(Patrocinador patrocinador)
-		//{
-		//    _patrocinadores.Remove(patrocinador);
-		//}
+		protected internal virtual void RemovePatrocinador(Patrocinador patrocinador)
+		{
+			_patrocinadores.Remove(patrocinador);
+		}
 
 
 		#endregion
--- a/Agendas/trunk/src/Agendas.Domain/Patrocinador.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Patrocinador.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -3,26 +3,26 @@
 
 namespace AltNetHispano.Agendas.Domain
 {
-	//public class Patrocinador : Identificable
-	//{
-	//    public virtual string Nombre { get; set; }
-	//    public virtual byte[] Logo { get; set; }
+	public class Patrocinador : Identificable
+	{
+		public virtual string Nombre { get; set; }
+		public virtual byte[] Logo { get; set; }
 
-	//    public Patrocinador(string nombre)
-	//    {
-	//        Nombre = nombre;
-	//    }
+		public Patrocinador(string nombre)
+		{
+			Nombre = nombre;
+		}
 
-	//    protected Patrocinador()
-	//    {
-	//    }
+		protected Patrocinador()
+		{
+		}
 
-	//    public virtual void LoadLogo(string path)
-	//    {
-	//        var image = Image.FromFile(path);
-	//        var ms = new MemoryStream();
-	//        image.Save(ms, image.RawFormat);
-	//        Logo = ms.ToArray();
-	//    }
-	//}
+		public virtual void LoadLogo(string path)
+		{
+			var image = Image.FromFile(path);
+			var ms = new MemoryStream();
+			image.Save(ms, image.RawFormat);
+			Logo = ms.ToArray();
+		}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/Repositories/IPatrocinadorRepository.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Repositories/IPatrocinadorRepository.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -2,10 +2,10 @@
 
 namespace AltNetHispano.Agendas.Domain.Repositories
 {
-	//public interface IPatrocinadorRepository
-	//{
-	//    void Save(Patrocinador patrocinador);
-	//    Patrocinador Get(Guid patrocinadorId);
-	//    void Delete(Patrocinador patrocinador);
-	//}
+	public interface IPatrocinadorRepository
+	{
+		void Save(Patrocinador patrocinador);
+		Patrocinador Get(Guid patrocinadorId);
+		void Delete(Patrocinador patrocinador);
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -24,7 +24,8 @@
 			return _agenda ??
 			       (_agenda =
 			        new Agenda(publicadores, new EventoRepository(sessionFactory),
-			                   new PersonaRepository(sessionFactory)));
+			                   new PersonaRepository(sessionFactory), 
+							   new PatrocinadorRepository(sessionFactory)));
 		}
 
 		public static IPersonaRepository GetPersonaRepository()
--- a/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -22,7 +22,7 @@
             adapter.Setup(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message)).Returns(true);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
             adapter.Verify(ad => ad.CreateEvent(It.IsAny<IGEventDetail>(), out message), Times.Never());
@@ -43,7 +43,7 @@
             var fechaTermino = fechaInicio.AddHours(2);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
             agenda.Agendar("Agile Patterns", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -83,7 +83,7 @@
             var fechaTermino = fechaInicio.AddHours(2);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe);
             agenda.Agendar("Agile Patterns", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -123,7 +123,7 @@
             var fechaTermino = fechaInicio.AddHours(2);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio);
             agenda.Agendar("Agile Patterns", new[]{ TestsHelper.GetOrCreatePonente("Alejandro Labra")}, fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -164,7 +164,7 @@
             adapter.Setup(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message)).Returns(true);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
             adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never());
@@ -189,7 +189,7 @@
 			var fechaTermino = fechaInicio.AddHours(2);
 
 			var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Agendar("Identity Providers Pblicos y Empresariales", new[]{ TestsHelper.GetOrCreatePonente("Carlos Peix"),TestsHelper.GetOrCreatePonente("Nelo Pauselli")}, fechaInicio,
 						   fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
 						   TipoEvento.Van);
@@ -209,7 +209,7 @@
 			var fechaTermino = fechaInicio.AddHours(2);
 
 			var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Agendar("Identity Providers Pblicos y Empresariales", null, fechaInicio,
 						   fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
 						   TipoEvento.Cafe);
--- a/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -41,7 +41,7 @@
 			orm.TablePerClass<Track>();
 			orm.TablePerClass<TrackLog>();
 			orm.TablePerClass<Cuenta>();
-			//orm.TablePerClass<Patrocinador>();
+			orm.TablePerClass<Patrocinador>();
 
 			orm.Cascade<Evento, Persona>(Cascade.None);
 			orm.Cascade<Persona, Evento>(Cascade.None);
--- a/Agendas/trunk/src/Agendas.Repositories.Memory/PatrocinadorRepository.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Memory/PatrocinadorRepository.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -3,11 +3,11 @@
 
 namespace AltNetHispano.Agendas.Repositories.Memory
 {
-	//public class PatrocinadorRepository : RepositoryBase<Patrocinador>, IPatrocinadorRepository
-	//{
-	//    public static void Clear()
-	//    {
-	//        Objects.Clear();
-	//    }
-	//}
+	public class PatrocinadorRepository : RepositoryBase<Patrocinador>, IPatrocinadorRepository
+	{
+		public static void Clear()
+		{
+			Objects.Clear();
+		}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.NHibernate/PatrocinadorRepository.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.NHibernate/PatrocinadorRepository.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -5,21 +5,21 @@
 
 namespace AltNetHispano.Agendas.Repositories.NHibernate
 {
-	//public class PatrocinadorRepository : RepositoryBase<Patrocinador>, IPatrocinadorRepository
-	//{
-	//    public PatrocinadorRepository(ISessionFactory sessionFactory)
-	//        : base(sessionFactory)
-	//    {
-	//    }
+	public class PatrocinadorRepository : RepositoryBase<Patrocinador>, IPatrocinadorRepository
+	{
+		public PatrocinadorRepository(ISessionFactory sessionFactory)
+			: base(sessionFactory)
+		{
+		}
 
-	//    public Patrocinador Get(Guid patrocinadorId)
-	//    {
-	//        return Session.Get<Patrocinador>(patrocinadorId);
-	//    }
+		public Patrocinador Get(Guid patrocinadorId)
+		{
+			return Session.Get<Patrocinador>(patrocinadorId);
+		}
 
-	//    public void Delete(Patrocinador patrocinador)
-	//    {
-	//        Session.Delete(patrocinador);
-	//    }
-	//}
+		public void Delete(Patrocinador patrocinador)
+		{
+			Session.Delete(patrocinador);
+		}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Agendas.Repositories.Tests.csproj	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Agendas.Repositories.Tests.csproj	Wed Nov 30 08:56:01 2011 -0300
@@ -106,6 +106,9 @@
     <Content Include="hibernate.cfg.xml">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <Content Include="images\apress.gif">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/IInfraestrutureFactory.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/IInfraestrutureFactory.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -7,6 +7,7 @@
 	{
 		IEventoRepository GetEventoRepository();
 		IPersonaRepository GetPonenteRepository();
+		IPatrocinadorRepository GetPatrocinadorRepository();
 		Func<IDisposable> GetRequestEmulator();
 	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/MemoryInfraestrutureFactory.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/MemoryInfraestrutureFactory.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -17,6 +17,11 @@
 			return new PersonaRepository();
 		}
 
+		public IPatrocinadorRepository GetPatrocinadorRepository()
+		{
+			return new PatrocinadorRepository();
+		}
+
 		public Func<IDisposable> GetRequestEmulator()
 		{
 			return () => new Mock<IDisposable>().Object;
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhHelperTest.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhHelperTest.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -12,6 +12,7 @@
 			session.CreateSQLQuery("DELETE FROM Ponentes").ExecuteUpdate();
 			session.CreateSQLQuery("DELETE FROM Evento").ExecuteUpdate();
 			session.CreateSQLQuery("DELETE FROM Persona").ExecuteUpdate();
+			session.CreateSQLQuery("DELETE FROM Patrocinador").ExecuteUpdate();
 		}
 	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhInfraestrutureFactory.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Infraestructure/NhInfraestrutureFactory.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -24,6 +24,11 @@
 			return new PersonaRepository(_sessionFactory);
 		}
 
+		public IPatrocinadorRepository GetPatrocinadorRepository()
+		{
+			return new PatrocinadorRepository(_sessionFactory);
+		}
+
 		public Func<IDisposable> GetRequestEmulator()
 		{
 			return () => new RequestEmulator(_sessionFactory);
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrud.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrud.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -1,84 +1,89 @@
-namespace Agendas.Repositories.Tests
+using System;
+using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Domain.Repositories;
+using NUnit.Framework;
+
+namespace Agendas.Repositories.Tests
 {
-	//public class PatrocinadorCrud
-	//{
-	//    private readonly IPatrocinadorRepository _patrocinadorRepository;
-	//    private readonly Func<IDisposable> _requestEmulator;
-	//    private byte[] _logo;
+	public class PatrocinadorCrud
+	{
+		private readonly IPatrocinadorRepository _patrocinadorRepository;
+		private readonly Func<IDisposable> _requestEmulator;
+		private byte[] _logo;
 
-	//    public PatrocinadorCrud(Func<IPatrocinadorRepository> createPatrocinadorRepository, Func<IDisposable> requestEmulator)
-	//    {
-	//        _patrocinadorRepository = createPatrocinadorRepository.Invoke();
-	//        _requestEmulator = requestEmulator;
-	//    }
+		public PatrocinadorCrud(Func<IPatrocinadorRepository> createPatrocinadorRepository, Func<IDisposable> requestEmulator)
+		{
+			_patrocinadorRepository = createPatrocinadorRepository.Invoke();
+			_requestEmulator = requestEmulator;
+		}
 
-	//    public Guid Create()
-	//    {
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = new Patrocinador("APRESS");
+		public Guid Create()
+		{
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = new Patrocinador("APRESS");
 
-	//            patrocinador.LoadLogo("images/apress.gif");
-	//            _logo = patrocinador.Logo;
+				patrocinador.LoadLogo("images/apress.gif");
+				_logo = patrocinador.Logo;
 
-	//            _patrocinadorRepository.Save(patrocinador);
-	//            return patrocinador.Id;
-	//        }
-	//    }
+				_patrocinadorRepository.Save(patrocinador);
+				return patrocinador.Id;
+			}
+		}
 
-	//    public void Read()
-	//    {
-	//        Guid patrocinadorId = Create();
+		public void Read()
+		{
+			Guid patrocinadorId = Create();
 
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
 
-	//            Assert.IsNotNull(patrocinador);
-	//            Assert.AreEqual("APRESS", patrocinador.Nombre);
-	//            Assert.IsNotNull(patrocinador.Logo);
-	//            Assert.AreEqual(_logo, patrocinador.Logo);
-	//        }
-	//    }
+				Assert.IsNotNull(patrocinador);
+				Assert.AreEqual("APRESS", patrocinador.Nombre);
+				Assert.IsNotNull(patrocinador.Logo);
+				Assert.AreEqual(_logo, patrocinador.Logo);
+			}
+		}
 
-	//    public void Update()
-	//    {
-	//        Guid patrocinadorId = Create();
+		public void Update()
+		{
+			Guid patrocinadorId = Create();
 
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
-	//            Assert.IsNotNull(patrocinador);
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+				Assert.IsNotNull(patrocinador);
 
-	//            patrocinador.Nombre = "Apress";
-	//        }
+				patrocinador.Nombre = "Apress";
+			}
 
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
 
-	//            Assert.IsNotNull(patrocinador);
-	//            Assert.AreEqual("Apress", patrocinador.Nombre);
-	//        }
-	//    }
+				Assert.IsNotNull(patrocinador);
+				Assert.AreEqual("Apress", patrocinador.Nombre);
+			}
+		}
 
-	//    public void Delete()
-	//    {
-	//        Guid patrocinadorId = Create();
+		public void Delete()
+		{
+			Guid patrocinadorId = Create();
 
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
-	//            Assert.IsNotNull(patrocinador);
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+				Assert.IsNotNull(patrocinador);
 
-	//            _patrocinadorRepository.Delete(patrocinador);
-	//        }
+				_patrocinadorRepository.Delete(patrocinador);
+			}
 
-	//        using (_requestEmulator.Invoke())
-	//        {
-	//            var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
-	//            Assert.IsNull(patrocinador);
-	//        }
-	//    }
-	//}
+			using (_requestEmulator.Invoke())
+			{
+				var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
+				Assert.IsNull(patrocinador);
+			}
+		}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudMemoryTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudMemoryTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -1,57 +1,63 @@
-namespace Agendas.Repositories.Tests
+using System;
+using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Repositories.Memory;
+using Moq;
+using NUnit.Framework;
+
+namespace Agendas.Repositories.Tests
 {
-	//[TestFixture]
-	//public class PatrocinadorCrudMemoryTests
-	//{
-	//    private PatrocinadorCrud _eventoCrud;
-
-	//    #region SetUp
+	[TestFixture]
+	public class PatrocinadorCrudMemoryTests
+	{
+		private PatrocinadorCrud _eventoCrud;
 
-	//    [SetUp]
-	//    public void BorrarRepositorios()
-	//    {
-	//        PatrocinadorRepository.Clear();
-	//    }
+		#region SetUp
+
+		[SetUp]
+		public void BorrarRepositorios()
+		{
+			PatrocinadorRepository.Clear();
+		}
 
-	//    [SetUp]
-	//    public void SetearUsuario()
-	//    {
-	//        var seguridad = new Mock<ISeguridad>();
-	//        seguridad.Setup(s => s.GetUserName()).Returns("neluz");
-	//        IdentityContext.Init(seguridad.Object, new PersonaRepository());
-	//    }
-
-	//    [SetUp]
-	//    public void CreateCrud()
-	//    {
-	//        _eventoCrud = new PatrocinadorCrud(() => new PatrocinadorRepository(), () => new Mock<IDisposable>().Object);
-	//    }
+		[SetUp]
+		public void SetearUsuario()
+		{
+			var seguridad = new Mock<ISeguridad>();
+			seguridad.Setup(s => s.GetUserName()).Returns("neluz");
+			IdentityContext.Init(seguridad.Object, new PersonaRepository());
+		}
 
-	//    #endregion
+		[SetUp]
+		public void CreateCrud()
+		{
+			_eventoCrud = new PatrocinadorCrud(() => new PatrocinadorRepository(), () => new Mock<IDisposable>().Object);
+		}
 
-	//    [Test]
-	//    public void Create()
-	//    {
-	//        _eventoCrud.Create();
-	//    }
+		#endregion
 
-	//    [Test]
-	//    public void Read()
-	//    {
-	//        _eventoCrud.Read();
-	//    }
+		[Test]
+		public void Create()
+		{
+			_eventoCrud.Create();
+		}
 
-	//    [Test]
-	//    public void Update()
-	//    {
-	//        _eventoCrud.Update();
-	//    }
+		[Test]
+		public void Read()
+		{
+			_eventoCrud.Read();
+		}
 
-	//    [Test]
-	//    public void Delete()
-	//    {
-	//        _eventoCrud.Delete();
-	//    }
+		[Test]
+		public void Update()
+		{
+			_eventoCrud.Update();
+		}
 
-	//}
+		[Test]
+		public void Delete()
+		{
+			_eventoCrud.Delete();
+		}
+
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudNhTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/PatrocinadorCrudNhTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -1,58 +1,66 @@
-namespace Agendas.Repositories.Tests
+using Agendas.NHibernate;
+using Agendas.Repositories.Tests.Infraestructure;
+using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Repositories.NHibernate;
+using Moq;
+using NHibernate;
+using NUnit.Framework;
+
+namespace Agendas.Repositories.Tests
 {
-	//[TestFixture]
-	//public class PatrocinadorCrudNhTests
-	//{
-	//    private PatrocinadorCrud _patrocinadorCrud;
-
-	//    #region SetUp
+	[TestFixture]
+	public class PatrocinadorCrudNhTests
+	{
+		private PatrocinadorCrud _patrocinadorCrud;
 
-	//    [SetUp]
-	//    public void BorrarRepositorios()
-	//    {
-	//        NhHelperTest.CleanDb();
-	//    }
+		#region SetUp
+
+		[SetUp]
+		public void BorrarRepositorios()
+		{
+			NhHelperTest.CleanDb();
+		}
 
-	//    [SetUp]
-	//    public void SetearUsuario()
-	//    {
-	//        var seguridad = new Mock<ISeguridad>();
-	//        seguridad.Setup(s => s.GetUserName()).Returns("neluz");
-	//        IdentityContext.Init(seguridad.Object, new PersonaRepository(NhHelper.GetSessionFactory()));
-	//    }
+		[SetUp]
+		public void SetearUsuario()
+		{
+			var seguridad = new Mock<ISeguridad>();
+			seguridad.Setup(s => s.GetUserName()).Returns("neluz");
+			IdentityContext.Init(seguridad.Object, new PersonaRepository(NhHelper.GetSessionFactory()));
+		}
 
-	//    [SetUp]
-	//    public void CreateCrud()
-	//    {
-	//        ISessionFactory sessionFactory = NhHelper.GetSessionFactory();
-	//        _patrocinadorCrud = new PatrocinadorCrud(() => new PatrocinadorRepository(sessionFactory), () => new RequestEmulator(sessionFactory));
-	//    }
+		[SetUp]
+		public void CreateCrud()
+		{
+			ISessionFactory sessionFactory = NhHelper.GetSessionFactory();
+			_patrocinadorCrud = new PatrocinadorCrud(() => new PatrocinadorRepository(sessionFactory), () => new RequestEmulator(sessionFactory));
+		}
 
-	//    #endregion
+		#endregion
 
-	//    [Test]
-	//    public void Create()
-	//    {
-	//        _patrocinadorCrud.Create();
-	//    }
+		[Test]
+		public void Create()
+		{
+			_patrocinadorCrud.Create();
+		}
 
-	//    [Test]
-	//    public void Read()
-	//    {
-	//        _patrocinadorCrud.Read();
-	//    }
+		[Test]
+		public void Read()
+		{
+			_patrocinadorCrud.Read();
+		}
 
-	//    [Test]
-	//    public void Update()
-	//    {
-	//        _patrocinadorCrud.Update();
-	//    }
+		[Test]
+		public void Update()
+		{
+			_patrocinadorCrud.Update();
+		}
 
-	//    [Test]
-	//    public void Delete()
-	//    {
-	//        _patrocinadorCrud.Delete();
-	//    }
+		[Test]
+		public void Delete()
+		{
+			_patrocinadorCrud.Delete();
+		}
 
-	//}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/Workflow.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -15,12 +15,12 @@
 		private readonly TestsHelper _testsHelper;
 
 		public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
-		                Func<IDisposable> requestEmulator)
+						IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator)
 		{
 			_requestEmulator = requestEmulator;
 			_eventoRepository = eventoRepository;
-			
-			_agenda = new Agenda(publicador, eventoRepository, personaRepository);
+
+			_agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository);
 			_testsHelper = new TestsHelper(personaRepository);
 		}
 
--- a/Agendas/trunk/src/Agendas.Repositories.Tests/WorkflowTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Tests/WorkflowTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -12,6 +12,7 @@
 	{
 		private readonly IPersonaRepository _personaRepository;
 		private readonly IEventoRepository _eventoRepository;
+		private readonly IPatrocinadorRepository _patrocinadorRepository;
 		private readonly Func<IDisposable> _requestEmulator;
 
 		protected WorkflowTests()
@@ -20,6 +21,7 @@
 
 			_eventoRepository = infraestrutureFactory.GetEventoRepository();
 			_personaRepository = infraestrutureFactory.GetPonenteRepository();
+			_patrocinadorRepository = infraestrutureFactory.GetPatrocinadorRepository();
 			_requestEmulator = infraestrutureFactory.GetRequestEmulator();
 		}
 
@@ -35,7 +37,7 @@
 		public void Proponer()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 			
 			workflow.Proponer();
 			publicador.Verify(p => p.Publicar(It.IsAny<IEnumerable<Track>>()), Times.Once());
@@ -45,7 +47,7 @@
 		public void Proponer_y_agendar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 			
 			workflow.Proponer();
 
@@ -57,7 +59,7 @@
 		public void Proponer_agendar_y_cancelar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -72,7 +74,7 @@
 		public void Proponer_agendar_cancelar_y_reagendar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 			
 			workflow.Proponer();
 
@@ -89,7 +91,7 @@
 		public void Proponer_agendar_cancelar_reproponer_agendar_y_confirmar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -110,7 +112,7 @@
 		public void Proponer_agendar_cancelar_reagendar_y_confirmar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -129,7 +131,7 @@
 		public void Proponer_agendar_cancelar_y_reproponer()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -146,7 +148,7 @@
 		public void Proponer_y_descartar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -158,7 +160,7 @@
 		public void Proponer_agendar_cancelar_y_descartar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -175,7 +177,7 @@
 		public void Proponer_agendar_y_confirmar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
@@ -190,7 +192,7 @@
 		public void Proponer_agendar_confirmar_publicar()
 		{
 			var publicador = new Mock<IPublicador>();
-			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _requestEmulator);
+			var workflow = new Workflow(publicador.Object, _eventoRepository, _personaRepository, _patrocinadorRepository, _requestEmulator);
 
 			workflow.Proponer();
 
Binary file Agendas/trunk/src/Agendas.Repositories.Tests/images/apress.gif has changed
--- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -29,7 +29,7 @@
 
 			publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Throws(new Exception("Error intencional"));
 			repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
-			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -51,7 +51,7 @@
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 			repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
-			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -70,7 +70,7 @@
 			var publicador = new Mock<IPublicador>();
 			var repository = new Mock<IEventoRepository>();
 			repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
-			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -86,7 +86,7 @@
 		[Test]
 		public void Intentar_agendar_van_sin_ponentes_null()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -98,7 +98,7 @@
 		[Test]
 		public void Intentar_agendar_van_sin_ponentes_empty()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var fechaInicio = DateTime.Now.ToUniversalTime();
 			var fechaTermino = fechaInicio.AddHours(2);
@@ -111,7 +111,7 @@
 		[Test]
 		public void Agendar_cafe_sin_ponente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var fechaInicio = DateTime.Now.ToUniversalTime();
 			var fechaTermino = fechaInicio.AddHours(2);
@@ -124,7 +124,7 @@
 		[Test]
 		public void Agendar_grupo_de_estudio_sin_ponente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var fechaInicio = DateTime.Now.ToUniversalTime();
 			var fechaTermino = fechaInicio.AddHours(2);
@@ -142,7 +142,8 @@
 			var repository = new Mock<IEventoRepository>();
 			repository.Setup(r => r.GetActivos()).Returns(new List<Evento>());
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
-															repository.Object, DefaultPersonaRepository);
+															repository.Object, DefaultPersonaRepository, 
+															DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -159,7 +160,7 @@
 		{
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -180,7 +181,7 @@
 		[Test]
 		public void Agendar_evento_con_multiples_ponentes()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var fechaInicio = DateTime.Now.ToUniversalTime();
 			var fechaTermino = fechaInicio.AddHours(2);
@@ -209,7 +210,7 @@
 			var repository = DefaultEventoRepository;
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 		    var fechaInicioVanPublicar = DateTime.Now.ToUniversalTime();
 		    var fechaTerminoVanPublicar = fechaInicioVanPublicar.AddHours(2);
 
@@ -247,7 +248,8 @@
 			var publicador2 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
-															DefaultEventoRepository, DefaultPersonaRepository);
+															DefaultEventoRepository, DefaultPersonaRepository,
+															DefaultPatrocinadorRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -269,7 +271,8 @@
 			var publicador2 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
-															DefaultEventoRepository, DefaultPersonaRepository);
+															DefaultEventoRepository, DefaultPersonaRepository, 
+															DefaultPatrocinadorRepository);
 
 			agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  urlInvitacion, TipoEvento.Van);
 			Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
@@ -299,7 +302,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -314,7 +317,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechatermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechatermino, urlInvitacion,
@@ -331,7 +334,7 @@
         {
             var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino,
@@ -351,7 +354,7 @@
         {
             var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino,
@@ -372,7 +375,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino,
@@ -393,7 +396,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino, urlInvitacion,
@@ -415,7 +418,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino, urlInvitacion,
@@ -437,7 +440,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -456,7 +459,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Proponer("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -472,7 +475,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
             var publicador1 = new Mock<IPublicador>();
 
-            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino,
@@ -497,7 +500,7 @@
             var duracion = new TimeSpan(1, 34, 00);
             var publicador1 = new Mock<IPublicador>();
 
-            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", new[] {TestsHelper.GetOrCreatePonente("jjmontes")}, fechaInicio, fechaTermino,
@@ -520,7 +523,7 @@
 			const string urlWiki = "http://www.altnethispano.org/wiki/van-2010-10-21-mono-cecil.ashx";
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", new[]{TestsHelper.GetOrCreatePonente("jjmontes")},  fechaInicio, fechaTermino, urlInvitacion,
@@ -541,7 +544,7 @@
 		public void Verificar_que_no_se_puedan_agendar_dos_eventos_para_el_mismo_intervalo()
 		{
 			var publicador1 = new Mock<IPublicador>();
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
 			var fechaTermino = fechaInicio.AddHours(2);
 
@@ -592,7 +595,7 @@
 		public void Verificar_que_no_se_modifique_una_propuesta_de_VAN_al_intentar_agendarla_con_fechas_usadas()
 		{
 			var publicador1 = new Mock<IPublicador>();
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
 			var fechaTermino = fechaInicio.AddHours(2);
 
@@ -619,7 +622,7 @@
         public void Verificar_que_no_sea_posible_crear_dos_van_diferentes_con_igual_titulo()
         {
             var publicador1 = new Mock<IPublicador>();
-            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = new DateTime(2011, 8, 20, 18, 00, 00);
             var fechaTermino = fechaInicio.AddHours(2);
 
--- a/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -6,105 +6,106 @@
 
 namespace AltNetHispano.Agendas.Tests
 {
-	//[TestFixture]
-	//public class Eventos_y_patrocinadores_tests : TestBase
-	//{
-	//    private Guid _apressId;
-	//    private Guid _jetbrainsId;
-	//    private Guid _eventoId;
-	//    private Agenda _agenda;
+	[TestFixture]
+	public class Eventos_y_patrocinadores_tests : TestBase
+	{
+		private Guid _apressId;
+		private Guid _jetbrainsId;
+		private Guid _eventoId;
+		private Agenda _agenda;
 
-	//    [SetUp]
-	//    public void CrearDatos()
-	//    {
-	//        _agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+		[SetUp]
+		public void CrearDatos()
+		{
+			_agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
-	//        _apressId = CrearPatrocinador("Apress", "images/apress.gif");
-	//        _jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png");
-	//        _eventoId = CrearEvento();
-	//    }
+			_apressId = CrearPatrocinador("Apress", "images/apress.gif");
+			_jetbrainsId = CrearPatrocinador("jetbrains", "images/jetbrains.png");
+			_eventoId = CrearEvento();
+		}
 
-	//    [Test]
-	//    public void Indicar_patrociadores()
-	//    {
-	//        _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+		[Test]
+		public void Indicar_patrociadores()
+		{
+			_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
 
-	//        var evento = DefaultEventoRepository.GetActivos().First();
-	//        Assert.AreNotEqual(Guid.Empty, evento.Id);
-	//        Assert.IsNotNull(evento.FechaInicio);
-	//        Assert.IsNotNull(evento.Patrocinadores);
-	//        Assert.IsTrue(evento.Patrocinadores.Any());
-	//        Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
-	//        Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
-	//    }
+			var evento = DefaultEventoRepository.GetActivos().First();
+			Assert.AreNotEqual(Guid.Empty, evento.Id);
+			Assert.IsNotNull(evento.FechaInicio);
+			Assert.IsNotNull(evento.Patrocinadores);
+			Assert.IsTrue(evento.Patrocinadores.Any());
+			Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+			Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+		}
 
-	//    [Test]
-	//    public void Agregar_patrociador()
-	//    {
-	//        {
-	//            _agenda.IndicarPatrocinadores(_eventoId, new[] {_apressId});
+		[Test]
+		public void Agregar_patrociador()
+		{
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
 
-	//            var evento = DefaultEventoRepository.GetActivos().First();
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
-	//            Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
-	//        }
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
 
-	//        {
-	//            _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
+		}
 
-	//            var evento = DefaultEventoRepository.GetActivos().First();
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
-	//        }
-	//    }
+		[Test]
+		public void Quitar_patrociador()
+		{
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
 
-	//    [Test]
-	//    public void Quitar_patrociador()
-	//    {
-	//        {
-	//            _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId, _jetbrainsId });
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
 
-	//            var evento = DefaultEventoRepository.GetActivos().First();
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
-	//        }
-
-	//        {
-	//            _agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new[] { _apressId });
 
-	//            var evento = DefaultEventoRepository.GetActivos().First();
-	//            Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
-	//            Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
-	//        }
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsTrue(evento.Patrocinadores.Any(p => p.Nombre == "Apress"));
+				Assert.IsFalse(evento.Patrocinadores.Any(p => p.Nombre == "jetbrains"));
+			}
 
-	//        {
-	//            _agenda.IndicarPatrocinadores(_eventoId, new Guid[] {});
+			{
+				_agenda.IndicarPatrocinadores(_eventoId, new Guid[] { });
 
-	//            var evento = DefaultEventoRepository.GetActivos().First();
-	//            Assert.IsFalse(evento.Patrocinadores.Any());
-	//        }
-	//    }
+				var evento = DefaultEventoRepository.GetActivos().First();
+				Assert.IsFalse(evento.Patrocinadores.Any());
+			}
+		}
 
-	//    private static Guid CrearPatrocinador(string nombre, string images)
-	//    {
-	//        var patrocinador = new Patrocinador(nombre);
-	//        patrocinador.LoadLogo(images);
+		private static Guid CrearPatrocinador(string nombre, string images)
+		{
+			var patrocinador = new Patrocinador(nombre);
+			patrocinador.LoadLogo(images);
 
-	//        var patrocinadorRepository = DefaultPatrocinadorRepository;
-	//        patrocinadorRepository.Save(patrocinador);
+			var patrocinadorRepository = DefaultPatrocinadorRepository;
+			patrocinadorRepository.Save(patrocinador);
 
-	//        return patrocinador.Id;
-	//    }
+			return patrocinador.Id;
+		}
 
-	//    private Guid CrearEvento()
-	//    {
-	//        var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
-	//        var fechaTermino = fechaInicio.AddHours(2);
-	//        _agenda.Agendar("ADFS", TestsHelper.GetOrCreatePonente("Nelo Pauselli"), fechaInicio, fechaTermino, null, TipoEvento.Van);
+		private Guid CrearEvento()
+		{
+			var fechaInicio = DateTime.Today.AddDays(7).ToUniversalTime();
+			var fechaTermino = fechaInicio.AddHours(2);
+			var ponentes = new[] {TestsHelper.GetOrCreatePonente("Carlos Peix"), TestsHelper.GetOrCreatePonente("Nelo Pauselli")};
+			_agenda.Agendar("ADFS", ponentes, fechaInicio, fechaTermino, null, TipoEvento.Van);
 
-	//        var evento = DefaultEventoRepository.GetActivos().First();
-	//        return evento.Id;
-	//    }
+			var evento = DefaultEventoRepository.GetActivos().First();
+			return evento.Id;
+		}
 
-	//}
+	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PersonaServiceTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -219,7 +219,7 @@
             var publicador = new Mock<IPublicador>();
             var personaService = new PersonaService(DefaultPersonaRepository, DefaultEventoRepository);
 
-            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             var fechaInicio = DateTime.Now.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
--- a/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -18,7 +18,7 @@
             var publicador = new Mock<IPublicador>();
             Assert.AreEqual(1, DefaultPersonaRepository.GetAll().Count);
 
-            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicioNHibernate = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
             var fechaTerminoNHibernate = fechaInicioNHibernate.AddHours(2);
 
@@ -51,7 +51,7 @@
             publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
                 t => evento = t.First().Evento);
 
-            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
             var fechaInicio = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
@@ -79,7 +79,7 @@
             publicador.Setup(p => p.Publicar(It.IsAny<IEnumerable<Track>>())).Callback<IEnumerable<Track>>(
                 t => evento = t.First().Evento);
 
-            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             var fechaInicio = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
             var fechaTermino = fechaInicio.AddHours(2);
@@ -99,7 +99,7 @@
         [Test]
         public void Quitar_ponente_de_una_van()
         {
-            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             const string titulo = "Audit (parallel model) con NHibernate 3";
             Guid eventoId;
@@ -128,7 +128,7 @@
 		[Test]
 		public void Quitar_ponente_de_un_cafe()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			const string titulo = "Audit (parallel model) con NHibernate 3";
 			Guid eventoId;
@@ -165,7 +165,7 @@
         [Test]
         public void Cambiar_ponente_de_un_evento()
         {
-            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             const string titulo = "Audit (parallel model) con NHibernate 3";
             Guid eventoId;
--- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -17,7 +17,7 @@
 		[Test]
 		public void Crear_modificar_y_publicar_evento_propuesto()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van);
 			{
@@ -57,7 +57,7 @@
 		[Test]
 		public void Intentar_agendar_evento_propuesto_sin_indicar_fecha()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			{
 				agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
@@ -79,7 +79,7 @@
 		[Test]
 		public void Intentar_agendar_evento_propuesto_sin_indicar_ponente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			{
 				agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
@@ -103,7 +103,7 @@
 		{
 			var idEventoNoExistente = new Guid("99999999999999999999999999999999");
 
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			Assert.Throws<EventoNotFoundException>(() => agenda.GetEvento(idEventoNoExistente));
 		}
@@ -113,7 +113,7 @@
 		{
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository);
+			var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van);
 			Assert.IsFalse(r.Succeful);
@@ -124,7 +124,7 @@
 		[Test]
 		public void Intentar_proponer_evento_sin_usuario_autenticado()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			SetCurrentUser(null, null);
 
@@ -134,7 +134,7 @@
 		[Test]
 		public void Proponer_evento_correctamente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
 
 			IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
@@ -146,7 +146,7 @@
 		[Test]
 		public void Verificar_propuesta_separada_de_publicacion()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
@@ -165,7 +165,7 @@
         [Test]
         public void Publicar_con_Nro_Duplicado()
         {
-            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             {
                 var fechaInicio = DateTime.Now.ToUniversalTime();
                 var fechaTermino = fechaInicio.AddHours(2);
--- a/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -19,10 +19,10 @@
 			get { return new PersonaRepository(); }
 		}
 
-		//protected static IPatrocinadorRepository DefaultPatrocinadorRepository
-		//{
-		//    get { return new PatrocinadorRepository(); }
-		//}
+		protected static IPatrocinadorRepository DefaultPatrocinadorRepository
+		{
+			get { return new PatrocinadorRepository(); }
+		}
 		
 		[SetUp]
 		public void LimpiarEventos()
@@ -33,7 +33,7 @@
 		[SetUp]
 		public void PatrocinadoresEventos()
 		{
-			//PatrocinadorRepository.Clear();
+			PatrocinadorRepository.Clear();
 		}
 
 		[SetUp]
--- a/Agendas/trunk/src/Agendas.Tests/TrackTests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -15,7 +15,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, repository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
             var fechaInicio = DateTime.Now.AddDays(5).ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
@@ -54,7 +54,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, repository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var fechaInicio = DateTime.Now.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
 
--- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -23,7 +23,7 @@
 
 			var publicador = new TwitterPublicador(adapter.Object);
 
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
 
@@ -45,7 +45,7 @@
 
 			var publicador = new TwitterPublicador(adapter.Object);
 
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
 
 			adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once());
@@ -69,7 +69,7 @@
 			adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitters.Add(status));
 
 			var publicador = new TwitterPublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var ponentes = new[]
 			               	{
@@ -115,7 +115,7 @@
 			adapter.Setup(a => a.Update(It.IsAny<string>(), out message)).Returns(true).Callback<string, string>((status, m) => twitters.Add(status));
 
 			var publicador = new TwitterPublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 			var inicio = DateTime.Today;
 
@@ -143,13 +143,13 @@
             string twitt = null;
 
             var publicador = new TwitterPublicador();
-            var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var resultAgendar = agenda.Agendar(title, null, DateTime.Today.AddDays(8), DateTime.Today.AddDays(8).AddHours(2), string.Empty, TipoEvento.GrupoEstudio);
             Assert.IsTrue(resultAgendar.Succeful);
 
             var evento = agenda.GetEventosActivos().Where(e => e.Titulo == title).FirstOrDefault();
 
-            agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var resultCancelar = agenda.Cancelar(evento.Id);
 
             Assert.IsTrue(resultCancelar.Succeful);
@@ -167,7 +167,7 @@
 
         	var publicador = new TwitterPublicador(); //adapter.Object);
 
-            var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
             var resultAgendar = agenda.Agendar("Primer VAN", null, DateTime.Today.AddDays(-1), DateTime.Today.AddDays(-1).AddHours(2), string.Empty, TipoEvento.GrupoEstudio);
             Assert.IsTrue(resultAgendar.Succeful);
             Assert.AreEqual(1, resultAgendar.Warnings.Count());
--- a/Agendas/trunk/src/Agendas.Twitter.Tests/Recordatorios_tests.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Recordatorios_tests.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -13,7 +13,7 @@
 		[Test]
 		public void Recordar()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
 
 
 			var ponente = new Persona("Hernán García", string.Empty, "theprogrammer", string.Empty);
--- a/Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs	Tue Nov 29 07:56:23 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Controllers/AccountController.cs	Wed Nov 30 08:56:01 2011 -0300
@@ -44,19 +44,6 @@
 			{
 				var username = OAuthTwitter.GetResponseContent(response, "screen_name");
 				var nombre = OAuthTwitter.GetResponseContent(response, "name");
-				//TOD: Esto es temporal.
-				nombre = nombre.Replace("\\u00e1", "á");
-				nombre = nombre.Replace("\\u00e9", "é");
-				nombre = nombre.Replace("\\u00ed", "í");
-				nombre = nombre.Replace("\\u00f3", "ó");
-				nombre = nombre.Replace("\\u00fa", "ú");
-				nombre = nombre.Replace("\\u00c1", "Á");
-				nombre = nombre.Replace("\\u00c9", "É");
-				nombre = nombre.Replace("\\u00cd", "Í");
-				nombre = nombre.Replace("\\u00d3", "Ó");
-				nombre = nombre.Replace("\\u00da", "Ú");
-				nombre = nombre.Replace("\\u00f1", "ñ");
-				nombre = nombre.Replace("\\u00d1", "Ñ");
 
 				var personaService = AgendaFactory.GetPersonaService();
 				personaService.CreateIfNotExist(IdentityProviderEnum.Twitter, username, nombre);