changeset 204:1fead4596a98

Combinar
author juanjose.montesdeocaarbos
date Wed, 24 Aug 2011 08:41:34 -0300
parents 04972ef8b6d2 (current diff) a731086c0b28 (diff)
children cfefc8a2ebc2 5cc7bc973ffc
files Agendas/trunk/src/Agendas.Domain/Agenda.cs
diffstat 50 files changed, 867 insertions(+), 704 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Wed Aug 24 08:40:18 2011 -0300
+++ b/.hgignore	Wed Aug 24 08:41:34 2011 -0300
@@ -9,3 +9,4 @@
 *.dotCover
 App_Data
 packages/*.*
+*.tmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/db/v1.0/00 - Tablas.sql	Wed Aug 24 08:41:34 2011 -0300
@@ -0,0 +1,80 @@
+DROP TABLE TrackLog
+DROP TABLE Track
+DROP TABLE Evento
+DROP TABLE Cuenta
+DROP TABLE Roles
+DROP TABLE Persona
+GO
+
+
+CREATE TABLE Persona(
+	Id uniqueidentifier NOT NULL,
+	Nombre nvarchar(255) NULL,
+	Mail nvarchar(255) NULL,
+	Twitter nvarchar(255) NULL,
+	Blog nvarchar(255) NULL,
+	CONSTRAINT PK_Persona PRIMARY KEY (Id),
+	CONSTRAINT UK_Persona_Nombre UNIQUE (Nombre),
+	CONSTRAINT UK_Persona_Twitter UNIQUE (Twitter))	
+GO
+
+CREATE TABLE Roles(
+	Persona uniqueidentifier NOT NULL,
+	Rol nvarchar(25) NOT NULL,
+	CONSTRAINT PK_Roles PRIMARY KEY (Persona, Rol),
+	CONSTRAINT FK_Roles_Persona FOREIGN KEY(Persona) REFERENCES Persona (Id) ON DELETE CASCADE
+)
+GO
+
+CREATE TABLE Evento(
+	Id uniqueidentifier NOT NULL,
+	Titulo nvarchar(255) NULL,
+	FechaInicio datetime NULL,
+	FechaTermino datetime NULL,
+	UrlInvitacion nvarchar(255) NULL,
+	UrlWiki nvarchar(255) NULL,
+	NumeroOrden smallint NULL,
+	Ponente uniqueidentifier NULL,
+	Estado nvarchar(25) NULL,
+	Tipo int NULL,
+	Duracion bigint NULL,
+	CONSTRAINT PK_Evento PRIMARY KEY (Id),
+	CONSTRAINT UK_Titulo UNIQUE (Titulo),
+	CONSTRAINT FK_Evento_Persona FOREIGN KEY(Ponente) REFERENCES Persona (Id)
+)
+GO
+
+CREATE TABLE Cuenta(
+	Id uniqueidentifier NOT NULL,
+	Persona uniqueidentifier NULL,
+	LogonName nvarchar(255) NULL,
+	IdentityProvider int NULL,
+	CONSTRAINT PK_Cuenta PRIMARY KEY (Id),
+	CONSTRAINT FK_Cuenta_Persona FOREIGN KEY(Persona) REFERENCES Persona (Id) ON DELETE CASCADE
+)
+GO
+
+CREATE TABLE Track(
+	Id uniqueidentifier NOT NULL,
+	Evento uniqueidentifier NULL,
+	Accion int NULL,
+	Usuario uniqueidentifier NULL,
+	CONSTRAINT PK_Track PRIMARY KEY (Id),
+	CONSTRAINT FK_Track_Usuario FOREIGN KEY(Usuario)REFERENCES Persona (Id),
+	CONSTRAINT FK_Track_Evento FOREIGN KEY(Evento) REFERENCES Evento (Id) ON DELETE CASCADE
+)
+GO
+
+CREATE TABLE TrackLog(
+	Id uniqueidentifier NOT NULL,
+	Propietario int NULL,
+	Mensaje nvarchar(255) NULL,
+	Track uniqueidentifier NULL,
+	Usuario uniqueidentifier NULL,
+	Successful bit NULL,
+	Fecha datetime NULL,
+	CONSTRAINT PK_TrackLog PRIMARY KEY (Id),
+	CONSTRAINT FK_TrackLog_Usuario FOREIGN KEY(Usuario)REFERENCES Persona (Id),
+	CONSTRAINT FK_TrackLog_Track FOREIGN KEY(Track)REFERENCES Track (Id) ON DELETE CASCADE
+)
+GO
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Wed Aug 24 08:41:34 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, IPatrocinadorRepository patrocinadorRepository)
+                      IPersonaRepository personaRepository)
         {
             _publicador = publicador;
-            _patrocinadorRepository = patrocinadorRepository;
+            //_patrocinadorRepository = patrocinadorRepository;
             _personaRepository = personaRepository;
             _eventosRepository = eventosRepository;
         }
@@ -226,34 +226,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	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -1,6 +1,5 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
 
 namespace AltNetHispano.Agendas.Domain
 {
@@ -9,7 +8,7 @@
 		protected Evento()
 		{
 			_tracks = new List<Track>();
-			_patrocinadores = new List<Patrocinador>();
+			//_patrocinadores = new List<Patrocinador>();
 		}
 
 		#region Propiedades del Evento
@@ -71,18 +70,17 @@
 			set { _estado = value; }
 		}
 
-		//private EventoState _eventoState;
-		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.
@@ -92,15 +90,15 @@
 			get; set;
 		}
 
-		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	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Patrocinador.cs	Wed Aug 24 08:41:34 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	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Repositories/IPatrocinadorRepository.cs	Wed Aug 24 08:41:34 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.Domain/Services/PersonaService.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -43,7 +43,7 @@
 #if DEBUG
 			var administradores = new[] {"nelopauselli", "alabras", "jjmoa", "jrowies"};
 #else
-			var administradores = new[] {"alabras", "jrowies", "jorgegamba"};
+			var administradores = new[] {"nelopauselli", "alabras", "jrowies", "jorgegamba"};
 #endif
 			if (administradores.Contains(persona.Twitter))
 			{
--- a/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Factories/AgendaFactory.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -24,7 +24,7 @@
 			return _agenda ??
 			       (_agenda =
 			        new Agenda(publicadores, new EventoRepository(sessionFactory),
-			                   new PersonaRepository(sessionFactory), new PatrocinadorRepository(sessionFactory)));
+			                   new PersonaRepository(sessionFactory)));
 		}
 
 		public static IPersonaRepository GetPersonaRepository()
--- a/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Wed Aug 24 08:41:34 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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
             
             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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
             agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -56,16 +56,16 @@
             Assert.AreEqual("VAN sobre Agile Patterns", detail.Title);
             
             Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
-            Assert.AreEqual(18, detail.StartEvent.Hour);
+            Assert.AreEqual(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour);
             Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
             Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
             Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
 
             Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
-            Assert.AreEqual(20, detail.EndEvent.Hour);
-            Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
-            Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
-            Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
+            Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour);
+            Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day);
+            Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month);
+            Assert.AreEqual(ev.FechaTermino.Value.Year, detail.EndEvent.Year);
 
             Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Agile Patterns, con Alejandro Labra." +
                            "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
@@ -83,7 +83,7 @@
             var fechaTermino = fechaInicio.AddHours(2);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Cafe);
             agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -96,16 +96,16 @@
             Assert.AreEqual("Alt.Net Café Agile Patterns", detail.Title);
 
             Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
-            Assert.AreEqual(18, detail.StartEvent.Hour);
+            Assert.AreEqual(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour);
             Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
             Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
             Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
 
             Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
-            Assert.AreEqual(20, detail.EndEvent.Hour);
-            Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
-            Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
-            Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
+            Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour);
+            Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day);
+            Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month);
+            Assert.AreEqual(ev.FechaTermino.Value.Year, detail.EndEvent.Year);
 
             Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un Alt.Net Cafe virtual con el tema Agile Patterns." +
                            "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
@@ -123,7 +123,7 @@
             var fechaTermino = fechaInicio.AddHours(2);
 
             var publicador = new GooglePublicador(adapter.Object);
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.GrupoEstudio);
             agenda.Agendar("Agile Patterns", TestsHelper.GetOrCreatePonente("Alejandro Labra"), fechaInicio,
                            fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
@@ -136,16 +136,16 @@
             Assert.AreEqual("Grupo de Estudio Agile Patterns", detail.Title);
 
             Assert.AreEqual(DateTimeKind.Utc, detail.StartEvent.Kind);
-            Assert.AreEqual(18, detail.StartEvent.Hour);
+            Assert.AreEqual(ev.FechaInicio.Value.Hour, detail.StartEvent.Hour);
             Assert.AreEqual(ev.FechaInicio.Value.Day, detail.StartEvent.Day);
             Assert.AreEqual(ev.FechaInicio.Value.Month, detail.StartEvent.Month);
             Assert.AreEqual(ev.FechaInicio.Value.Year, detail.StartEvent.Year);
 
             Assert.AreEqual(DateTimeKind.Utc, detail.EndEvent.Kind);
-            Assert.AreEqual(20, detail.EndEvent.Hour);
-            Assert.AreEqual(ev.FechaInicio.Value.Day, detail.EndEvent.Day);
-            Assert.AreEqual(ev.FechaInicio.Value.Month, detail.EndEvent.Month);
-            Assert.AreEqual(ev.FechaInicio.Value.Year, detail.EndEvent.Year);
+            Assert.AreEqual(ev.FechaTermino.Value.Hour, detail.EndEvent.Hour);
+            Assert.AreEqual(ev.FechaTermino.Value.Day, detail.EndEvent.Day);
+            Assert.AreEqual(ev.FechaTermino.Value.Month, detail.EndEvent.Month);
+            Assert.AreEqual(ev.FechaTermino.Value.Year, detail.EndEvent.Year);
 
             Assert.AreEqual("La comunidad ALT.NET Hispano (http://altnethispano.org) realizará un grupo de estudio sobre Agile Patterns." +
                            "\n\rFecha: sábado, 09 de julio de 2011 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas." +
@@ -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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
 
             agenda.Proponer("Agile Patterns", null, null, TipoEvento.Van);
             adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Never());
--- a/Agendas/trunk/src/Agendas.Google/DetailsEvents/CafeGEventDetail.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google/DetailsEvents/CafeGEventDetail.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -23,10 +23,8 @@
         {
             Title = "Alt.Net Café " + evento.Titulo;
             Location = "http://snipr.com/virtualaltnet";
-            if (evento.FechaInicio != null)
-                StartEvent = new DateTime(evento.FechaInicio.Value.Year, evento.FechaInicio.Value.Month, evento.FechaInicio.Value.Day,
-                                          18, 0, 0, DateTimeKind.Utc);
-            EndEvent = StartEvent.AddHours(2);
+            StartEvent = evento.FechaInicio.Value;
+            EndEvent = evento.FechaTermino.Value;
 
             var cultureInfo = new CultureInfo("es-ES", false).DateTimeFormat;
 
--- a/Agendas/trunk/src/Agendas.Google/DetailsEvents/EstudioGEventDetail.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google/DetailsEvents/EstudioGEventDetail.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -23,10 +23,8 @@
         {
             Title = "Grupo de Estudio " + evento.Titulo;
             Location = "http://snipr.com/virtualaltnet";
-            if (evento.FechaInicio != null)
-                StartEvent = new DateTime(evento.FechaInicio.Value.Year, evento.FechaInicio.Value.Month, evento.FechaInicio.Value.Day,
-                                          18, 0, 0, DateTimeKind.Utc);
-            EndEvent = StartEvent.AddHours(2);
+            StartEvent = evento.FechaInicio.Value;
+            EndEvent = evento.FechaTermino.Value;
 
             var cultureInfo = new CultureInfo("es-ES", false).DateTimeFormat;
 
--- a/Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -24,11 +24,8 @@
         {
             Title = "VAN sobre " + evento.Titulo;
             Location = "http://snipr.com/virtualaltnet";
-            if (evento.FechaInicio != null)
-                StartEvent = new DateTime(evento.FechaInicio.Value.Year, evento.FechaInicio.Value.Month, evento.FechaInicio.Value.Day,
-                                          18, 0, 0, DateTimeKind.Utc);
-            EndEvent = StartEvent.AddHours(2);
-
+            StartEvent = evento.FechaInicio.Value;
+            EndEvent = evento.FechaTermino.Value;
             var cultureInfo = new CultureInfo( "es-ES", false ).DateTimeFormat;
 
             Summary = TextoVan.Replace("[NOMBRE]", evento.Titulo).
--- a/Agendas/trunk/src/Agendas.Google/GooglePublicador.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google/GooglePublicador.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -54,7 +54,7 @@
 	    private void PublicarAccionCancelar(Track track)
 	    {
             string message;
-	        var result= _adapter.DeleteEvent(track.Evento.FechaInicio.Value, track.Evento.FechaInicio.Value.AddHours(2), out message);
+	        var result= _adapter.DeleteEvent(track.Evento.FechaInicio.Value, track.Evento.FechaTermino.Value, out message);
             track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result));
 	    }
 
--- a/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.NHibernate/NhHelper.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -1,8 +1,10 @@
-using AltNetHispano.Agendas.Domain;
+using System;
+using AltNetHispano.Agendas.Domain;
 using ConfOrm;
 using ConfOrm.NH;
 using NHibernate;
 using NHibernate.Cfg;
+using NHibernate.Cfg.MappingSchema;
 using NHibernate.Tool.hbm2ddl;
 
 namespace Agendas.NHibernate
@@ -16,32 +18,7 @@
 		{
 			if (_cfg == null)
 			{
-				var orm = new ObjectRelationalMapper();
-				orm.TablePerClass<Persona>();
-				orm.TablePerClass<Evento>();
-
-				orm.Complex<Evento>(e => e.Estado);
-
-				orm.TablePerClass<Track>();
-				orm.TablePerClass<TrackLog>();
-				orm.TablePerClass<Cuenta>();
-				orm.TablePerClass<Patrocinador>();
-
-				orm.Cascade<Evento, Persona>(Cascade.None);
-				orm.Cascade<Persona, Evento>(Cascade.None);
-
-				orm.Cascade<Persona, Cuenta>(Cascade.All | Cascade.DeleteOrphans);
-
-				var mapper = new Mapper(orm);
-
-			    mapper.Customize<Persona>(a => a.Property(p => p.Nombre, m => m.Unique(true)));
-                mapper.Customize<Persona>(a => a.Property(p => p.Twitter, m => m.Unique(true)));
-
-                mapper.Customize<Evento>(a => a.Property(p => p.Titulo, m => m.Unique(true)));
-
-				mapper.AddPropertyPattern(p => p.DeclaringType == typeof(Evento) && p.Name == "Estado", a => a.Type<EventoStateType>());
-
-				var mapping = mapper.CompileMappingFor(typeof(Evento).Assembly.GetTypes());
+				var mapping = GetMapping();
 				
 				_cfg = new Configuration();
 				_cfg.Configure();
@@ -50,6 +27,45 @@
 			return _cfg;
 		}
 
+		public static HbmMapping GetMapping()
+		{
+			var orm = new ObjectRelationalMapper();
+			orm.TablePerClass<Persona>();
+			orm.TablePerClass<Evento>();
+
+			orm.Complex<Evento>(e => e.Estado);
+
+			orm.TablePerClass<Track>();
+			orm.TablePerClass<TrackLog>();
+			orm.TablePerClass<Cuenta>();
+			//orm.TablePerClass<Patrocinador>();
+
+			orm.Cascade<Evento, Persona>(Cascade.None);
+			orm.Cascade<Persona, Evento>(Cascade.None);
+
+			orm.Cascade<Persona, Cuenta>(Cascade.All | Cascade.DeleteOrphans);
+
+			orm.Bag<Persona>(p => p.Roles);
+
+			var mapper = new Mapper(orm);
+
+			mapper.Customize<Persona>(a => a.Property(p => p.Nombre, m => m.Unique(true)));
+			mapper.Customize<Persona>(a => a.Property(p => p.Twitter, m => m.Unique(true)));
+
+			mapper.Class<Persona>(
+				ca => ca.Bag(
+					p => p.Roles,
+					cm => cm.Key(em => em.Column("Persona")),
+					m => m.Element(em => em.Column("Rol"))));
+
+			mapper.Customize<Evento>(a => a.Property(p => p.Titulo, m => m.Unique(true)));
+			
+			mapper.AddPropertyPattern(p => p.DeclaringType == typeof(Evento) && p.Name == "Estado", a => a.Type<EventoStateType>());
+
+			return mapper.CompileMappingFor(typeof(Evento).Assembly.GetTypes());
+
+		}
+
 		public static ISessionFactory GetSessionFactory()
 		{
 			if (_sessionfactory == null)
@@ -58,26 +74,7 @@
 
 #if DEBUG
 				var schemaValidator = new SchemaValidator(cfg);
-				try
-				{
-					schemaValidator.Validate();
-				}
-				catch
-				{
-					try
-					{
-						var schemaUpdate = new SchemaUpdate(cfg);
-						schemaUpdate.Execute(false, true);
-
-						schemaValidator.Validate();
-					}
-					catch
-					{
-						var schemaExport = new SchemaExport(cfg);
-						schemaExport.Create(false, true);
-					}
-				}
-
+				schemaValidator.Validate();
 #endif
 
 				_sessionfactory = cfg.BuildSessionFactory();
--- a/Agendas/trunk/src/Agendas.Repositories.Memory/PatrocinadorRepository.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.Memory/PatrocinadorRepository.cs	Wed Aug 24 08:41:34 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	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Repositories.NHibernate/PatrocinadorRepository.cs	Wed Aug 24 08:41:34 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.Resources/Agendas.Resources.csproj	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Agendas.Resources.csproj	Wed Aug 24 08:41:34 2011 -0300
@@ -56,6 +56,7 @@
     <EmbeddedResource Include="Properties\LayoutResources.resx">
       <Generator>PublicResXFileCodeGenerator</Generator>
       <LastGenOutput>LayoutResources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Properties\DataAnnotationResources.resx">
       <Generator>PublicResXFileCodeGenerator</Generator>
--- a/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.Designer.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.Designer.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -88,6 +88,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to debe ingresar la Duración del evento.
+        /// </summary>
+        public static string DuracionRequired {
+            get {
+                return ResourceManager.GetString("DuracionRequired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Correo electrónico.
         /// </summary>
         public static string EMail {
@@ -124,6 +133,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to debe ingresar la Hora del evento.
+        /// </summary>
+        public static string HoraRequired {
+            get {
+                return ResourceManager.GetString("HoraRequired", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Nombre de la persona que identifica a esta persona entre todas.
         /// </summary>
         public static string NombreDescription {
--- a/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.resx	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/DataAnnotationResources.resx	Wed Aug 24 08:41:34 2011 -0300
@@ -126,6 +126,9 @@
   <data name="DuracionRealDescription" xml:space="preserve">
     <value>Tiempo que duró la presentación.</value>
   </data>
+  <data name="DuracionRequired" xml:space="preserve">
+    <value>debe ingresar la Duración del evento</value>
+  </data>
   <data name="EMail" xml:space="preserve">
     <value>Correo electrónico</value>
   </data>
@@ -138,6 +141,9 @@
   <data name="Hora" xml:space="preserve">
     <value>Hora (GMT +0)</value>
   </data>
+  <data name="HoraRequired" xml:space="preserve">
+    <value>debe ingresar la Hora del evento</value>
+  </data>
   <data name="NombreDescription" xml:space="preserve">
     <value>Nombre de la persona que identifica a esta persona entre todas</value>
   </data>
--- a/Agendas/trunk/src/Agendas.Resources/Properties/LayoutResources.Designer.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/LayoutResources.Designer.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -106,7 +106,7 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to datos del evento.
+        ///   Looks up a localized string similar to Datos del evento.
         /// </summary>
         public static string EventoEditModelLegend {
             get {
@@ -133,7 +133,7 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to datos del evento.
+        ///   Looks up a localized string similar to Datos del evento.
         /// </summary>
         public static string EventoNewModelLegend {
             get {
--- a/Agendas/trunk/src/Agendas.Resources/Properties/LayoutResources.resx	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Resources/Properties/LayoutResources.resx	Wed Aug 24 08:41:34 2011 -0300
@@ -133,7 +133,7 @@
     <value>Cambie los datos que desea y presione el botón guardar</value>
   </data>
   <data name="EventoEditModelLegend" xml:space="preserve">
-    <value>datos del evento</value>
+    <value>Datos del evento</value>
   </data>
   <data name="EventoEditModelTitle" xml:space="preserve">
     <value>Modificar evento</value>
@@ -142,7 +142,7 @@
     <value>Ingrese los datos del nuevo evento</value>
   </data>
   <data name="EventoNewModelLegend" xml:space="preserve">
-    <value>datos del evento</value>
+    <value>Datos del evento</value>
   </data>
   <data name="EventoNewModelTitle" xml:space="preserve">
     <value>Nuevo evento</value>
--- a/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/AgendarTests.cs	Wed Aug 24 08:41:34 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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
 
 		    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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
 
 		    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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador.Object, repository.Object, DefaultPersonaRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -86,7 +86,7 @@
 		[Test]
 		public void Intentar_agendar_evento_sin_ponente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -104,7 +104,7 @@
 			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, DefaultPatrocinadorRepository);
+															repository.Object, DefaultPersonaRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -121,7 +121,7 @@
 		{
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -146,7 +146,7 @@
 			var repository = DefaultEventoRepository;
 			var publicador = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador.Object, repository, DefaultPersonaRepository);
 		    var fechaInicioVanPublicar = DateTime.Now.ToUniversalTime();
 		    var fechaTerminoVanPublicar = fechaInicioVanPublicar.AddHours(2);
 
@@ -186,7 +186,7 @@
 			var publicador2 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
-															DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+															DefaultEventoRepository, DefaultPersonaRepository);
 
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
@@ -208,7 +208,7 @@
 			var publicador2 = new Mock<IPublicador>();
 
 			var agenda = new Agenda(new CompositePublicador(new[] { publicador1.Object, publicador2.Object }),
-															DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+															DefaultEventoRepository, DefaultPersonaRepository);
 
 			agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van);
 			Assert.AreEqual(1, agenda.GetEventosActivos(EventoPropuestoState.GetInstance()).Count);
@@ -238,7 +238,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 			agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -253,7 +253,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechatermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechatermino, urlInvitacion,
@@ -270,7 +270,7 @@
         {
             var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
@@ -290,7 +290,7 @@
         {
             var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
@@ -311,7 +311,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
@@ -332,7 +332,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
@@ -354,7 +354,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
@@ -376,7 +376,7 @@
 		{
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 			agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -395,7 +395,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
 			var publicador1 = new Mock<IPublicador>();
 
-			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 			agenda.Proponer("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), urlInvitacion, TipoEvento.Van);
 
 			var evento =
@@ -411,7 +411,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
             var publicador1 = new Mock<IPublicador>();
 
-            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
@@ -432,7 +432,7 @@
 			var duracion = new TimeSpan(1, 34, 00);
             var publicador1 = new Mock<IPublicador>();
 
-            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicio = DateTime.MinValue.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
             agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino,
@@ -451,7 +451,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, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 		    var fechaInicio = DateTime.MinValue.ToUniversalTime();
 		    var fechaTermino = fechaInicio.AddHours(2);
 		    agenda.Agendar("Html 5", TestsHelper.GetOrCreatePonente("jjmontes"), fechaInicio, fechaTermino, urlInvitacion,
@@ -468,8 +468,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,
-									DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 			var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
 			var fechaTermino = fechaInicio.AddHours(2);
 
@@ -520,8 +519,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,
-									DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador1.Object, DefaultEventoRepository, DefaultPersonaRepository);
 			var fechaInicio = new DateTime(2011, 7, 1, 18, 00, 00);
 			var fechaTermino = fechaInicio.AddHours(2);
 
--- a/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Agendas.Tests.csproj	Wed Aug 24 08:41:34 2011 -0300
@@ -77,6 +77,7 @@
     <Compile Include="Cruds\EventoCrud.cs" />
     <Compile Include="Cruds\EventoCrudNhTests.cs" />
     <Compile Include="Cruds\IPersonaCrudTest.cs" />
+    <Compile Include="Cruds\NhHelperTest.cs" />
     <Compile Include="Cruds\PatrocinadorCrud.cs" />
     <Compile Include="Cruds\PatrocinadorCrudMemoryTests.cs" />
     <Compile Include="Cruds\PatrocinadorCrudNhTests.cs" />
@@ -84,6 +85,7 @@
     <Compile Include="Cruds\PersonaCrudMemoryTests.cs" />
     <Compile Include="Cruds\PersonaCrudNhTests.cs" />
     <Compile Include="Cruds\RequestEmulator.cs" />
+    <Compile Include="Cruds\SchemaNhTests.cs" />
     <Compile Include="DateTimeFormattingTests.cs" />
     <Compile Include="EventoStateTests.cs" />
     <Compile Include="Eventos_y_patrocinadores_tests.cs" />
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrudNhTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrudNhTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -3,8 +3,6 @@
 using AltNetHispano.Agendas.Repositories.NHibernate;
 using Moq;
 using NHibernate;
-using NHibernate.Cfg;
-using NHibernate.Tool.hbm2ddl;
 using NUnit.Framework;
 
 namespace AltNetHispano.Agendas.Tests.Cruds
@@ -19,9 +17,7 @@
 		[SetUp]
 		public void BorrarRepositorios()
 		{
-			Configuration cfg =NhHelper.GetConfiguration();
-			var schemaExport = new SchemaExport(cfg);
-			schemaExport.Create(false, true);
+			NhHelperTest.CleanDb();
 		}
 
 		[SetUp]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/NhHelperTest.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -0,0 +1,16 @@
+using Agendas.NHibernate;
+
+namespace AltNetHispano.Agendas.Tests.Cruds
+{
+	public static class NhHelperTest
+	{
+		public static void CleanDb()
+		{
+			var sf = NhHelper.GetSessionFactory();
+
+			var session = sf.OpenStatelessSession();
+			session.CreateSQLQuery("DELETE FROM Evento").ExecuteUpdate();
+			session.CreateSQLQuery("DELETE FROM Persona").ExecuteUpdate();
+		}
+	}
+}
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrud.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -5,85 +5,85 @@
 
 namespace AltNetHispano.Agendas.Tests.Cruds
 {
-	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.Tests/Cruds/PatrocinadorCrudMemoryTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrudMemoryTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -6,58 +6,58 @@
 
 namespace AltNetHispano.Agendas.Tests.Cruds
 {
-	[TestFixture]
-	public class PatrocinadorCrudMemoryTests
-	{
-		private PatrocinadorCrud _eventoCrud;
+	//[TestFixture]
+	//public class PatrocinadorCrudMemoryTests
+	//{
+	//    private PatrocinadorCrud _eventoCrud;
 
-		#region SetUp
+	//    #region SetUp
 
-		[SetUp]
-		public void BorrarRepositorios()
-		{
-			PatrocinadorRepository.Clear();
-		}
+	//    [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 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 CreateCrud()
+	//    {
+	//        _eventoCrud = new PatrocinadorCrud(() => new PatrocinadorRepository(), () => new Mock<IDisposable>().Object);
+	//    }
 
-		#endregion
+	//    #endregion
 
-		[Test]
-		public void Create()
-		{
-			_eventoCrud.Create();
-		}
+	//    [Test]
+	//    public void Create()
+	//    {
+	//        _eventoCrud.Create();
+	//    }
 
-		[Test]
-		public void Read()
-		{
-			_eventoCrud.Read();
-		}
+	//    [Test]
+	//    public void Read()
+	//    {
+	//        _eventoCrud.Read();
+	//    }
 
-		[Test]
-		public void Update()
-		{
-			_eventoCrud.Update();
-		}
+	//    [Test]
+	//    public void Update()
+	//    {
+	//        _eventoCrud.Update();
+	//    }
 
-		[Test]
-		public void Delete()
-		{
-			_eventoCrud.Delete();
-		}
+	//    [Test]
+	//    public void Delete()
+	//    {
+	//        _eventoCrud.Delete();
+	//    }
 
-	}
+	//}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrudNhTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PatrocinadorCrudNhTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -3,67 +3,63 @@
 using AltNetHispano.Agendas.Repositories.NHibernate;
 using Moq;
 using NHibernate;
-using NHibernate.Cfg;
-using NHibernate.Tool.hbm2ddl;
 using NUnit.Framework;
 
 namespace AltNetHispano.Agendas.Tests.Cruds
 {
-	[TestFixture]
-	public class PatrocinadorCrudNhTests
-	{
-		private PatrocinadorCrud _patrocinadorCrud;
+	//[TestFixture]
+	//public class PatrocinadorCrudNhTests
+	//{
+	//    private PatrocinadorCrud _patrocinadorCrud;
 
-		#region SetUp
+	//    #region SetUp
+
+	//    [SetUp]
+	//    public void BorrarRepositorios()
+	//    {
+	//        NhHelperTest.CleanDb();
+	//    }
 
-		[SetUp]
-		public void BorrarRepositorios()
-		{
-			Configuration cfg = NhHelper.GetConfiguration();
-			var schemaExport = new SchemaExport(cfg);
-			schemaExport.Create(false, true);
-		}
+	//    [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.Tests/Cruds/PersonaCrudNhTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/PersonaCrudNhTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -3,8 +3,6 @@
 using AltNetHispano.Agendas.Repositories.NHibernate;
 using Moq;
 using NHibernate;
-using NHibernate.Cfg;
-using NHibernate.Tool.hbm2ddl;
 using NUnit.Framework;
 
 namespace AltNetHispano.Agendas.Tests.Cruds
@@ -19,9 +17,7 @@
 		[SetUp]
 		public void BorrarRepositorios()
 		{
-			Configuration cfg = NhHelper.GetConfiguration();
-			var schemaExport = new SchemaExport(cfg);
-			schemaExport.Create(false, true);
+			NhHelperTest.CleanDb();
 		}
 
 		[SetUp]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/SchemaNhTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -0,0 +1,61 @@
+using System;
+using System.Xml;
+using System.Xml.Serialization;
+using Agendas.NHibernate;
+using NHibernate.Cfg.MappingSchema;
+using NHibernate.Tool.hbm2ddl;
+using NUnit.Framework;
+
+namespace AltNetHispano.Agendas.Tests.Cruds
+{
+	[TestFixture]
+	public class SchemaNhTests
+	{
+		[Test]
+		public void ValidateSchema()
+		{
+			var cfg = NhHelper.GetConfiguration();
+
+			var schemaValidator = new SchemaValidator(cfg);
+			schemaValidator.Validate();
+		}
+
+		[Test]
+		public void BuildSessionFactory()
+		{
+			var cfg = NhHelper.GetConfiguration();
+
+			var sessionfactory = cfg.BuildSessionFactory();
+
+			Assert.IsNotNull(sessionfactory);
+		}
+
+		[Test]
+		public void ShowMapping()
+		{
+			var mapping = NhHelper.GetMapping();
+
+			var setting = new XmlWriterSettings { Indent = true };
+
+			var serializer = new XmlSerializer(typeof(HbmMapping));
+
+			var xw = XmlWriter.Create(Console.Out, setting);
+
+			serializer.Serialize(xw, mapping);
+		}
+
+		[Test]
+		public void LimpiarDb()
+		{
+			NhHelperTest.CleanDb();
+
+			var sf = NhHelper.GetSessionFactory();
+
+			var session = sf.OpenSession();
+
+			var query = session.CreateQuery("from System.Object");
+
+			Assert.IsEmpty(query.List());
+		}
+	}
+}
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Eventos_y_patrocinadores_tests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -6,105 +6,105 @@
 
 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, DefaultPatrocinadorRepository);
+	//    [SetUp]
+	//    public void CrearDatos()
+	//    {
+	//        _agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
-			_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);
+	//        _agenda.Agendar("ADFS", TestsHelper.GetOrCreatePonente("Nelo Pauselli"), 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/PonentesTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PonentesTests.cs	Wed Aug 24 08:41:34 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, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
             var fechaInicioNHibernate = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
             var fechaTerminoNHibernate = fechaInicioNHibernate.AddHours(2);
 
@@ -50,7 +50,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, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
 
             agenda.RegistrarPonente("Fabio Maulo", "fabiomaulo@gmail.com", "@fabiomaulo", "http://fabiomaulo.blogspot.com");
             var fechaInicio = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
@@ -77,7 +77,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, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(publicador.Object, DefaultEventoRepository, DefaultPersonaRepository);
 
             var fechaInicio = new DateTime(2011, 2, 26, 18, 0, 0, DateTimeKind.Utc);
             var fechaTermino = fechaInicio.AddHours(2);
@@ -96,7 +96,7 @@
         [Test]
         public void Quitar_ponente_de_un_evento()
         {
-            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
             const string titulo = "Audit (parallel model) con NHibernate 3";
             Guid eventoId;
@@ -127,7 +127,7 @@
         [Test]
         public void Cambiar_ponente_de_un_evento()
         {
-            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
             const string titulo = "Audit (parallel model) con NHibernate 3";
             Guid eventoId;
--- a/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/PropuestasTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -17,7 +17,7 @@
 		[Test]
 		public void Crear_modificar_y_publicar_evento_propuesto()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			agenda.Proponer("Van", null, urlInvitacion, TipoEvento.Van);
 			{
@@ -55,7 +55,7 @@
 		[Test]
 		public void Intentar_agendar_evento_propuesto_sin_indicar_fecha()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			{
 				agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
@@ -77,7 +77,7 @@
 		[Test]
 		public void Intentar_agendar_evento_propuesto_sin_indicar_ponente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			{
 				agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
@@ -101,7 +101,7 @@
 		{
 			var idEventoNoExistente = new Guid("99999999999999999999999999999999");
 
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			Assert.Throws<EventoNotFoundException>(() => agenda.GetEvento(idEventoNoExistente));
 		}
@@ -111,7 +111,7 @@
 		{
 			var repository = new Mock<IEventoRepository>();
 
-			var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, repository.Object, DefaultPersonaRepository);
 
 			var r = agenda.Proponer(string.Empty, null, urlInvitacion, TipoEvento.Van);
 			Assert.IsFalse(r.Succeful);
@@ -122,7 +122,7 @@
 		[Test]
 		public void Intentar_proponer_evento_sin_usuario_autenticado()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			SetCurrentUser(null, null);
 
@@ -132,7 +132,7 @@
 		[Test]
 		public void Proponer_evento_correctamente()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 			agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
 
 			IList<Evento> eventosPropuestos = agenda.GetEventosActivos(EventoPropuestoState.GetInstance());
@@ -144,7 +144,7 @@
 		[Test]
 		public void Verificar_propuesta_separada_de_publicacion()
 		{
-			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(null, DefaultEventoRepository, DefaultPersonaRepository);
 
 			agenda.Proponer("Van propuesta", null, urlInvitacion, TipoEvento.Van);
 		    var fechaInicio = DateTime.Now.ToUniversalTime();
--- a/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TestBase.cs	Wed Aug 24 08:41:34 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	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/TrackTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -15,7 +15,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(null, repository, DefaultPersonaRepository);
 
             var fechaInicio = DateTime.Now.AddDays(5).ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
@@ -51,7 +51,7 @@
         {
             var repository = DefaultEventoRepository;
 
-            var agenda = new Agenda(null, repository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+            var agenda = new Agenda(null, repository, DefaultPersonaRepository);
             var fechaInicio = DateTime.Now.ToUniversalTime();
             var fechaTermino = fechaInicio.AddHours(2);
 
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Workflows/Workflow.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -14,11 +14,11 @@
 		private Guid _eventoId;
 
 		public Workflow(IPublicador publicador, IEventoRepository eventoRepository, IPersonaRepository personaRepository,
-		                IPatrocinadorRepository patrocinadorRepository, Func<IDisposable> requestEmulator)
+		                Func<IDisposable> requestEmulator)
 		{
 			_requestEmulator = requestEmulator;
 			_eventoRepository = eventoRepository;
-			_agenda = new Agenda(publicador, eventoRepository, personaRepository, patrocinadorRepository);
+			_agenda = new Agenda(publicador, eventoRepository, personaRepository);
 		}
 
 		public void Proponer()
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowMemoryTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowMemoryTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -16,8 +16,7 @@
 		public void InitPublicador()
 		{
 			_publicador = new Mock<IPublicador>();
-			_workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository,
-			                         DefaultPatrocinadorRepository, () => new Mock<IDisposable>().Object);
+			_workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, () => new Mock<IDisposable>().Object);
 		}
 
 		[Test]
--- a/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowNhTests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Workflows/WorkflowNhTests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -17,7 +17,7 @@
 		public void InitPublicador()
 		{
 			_publicador = new Mock<IPublicador>();
-			_workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository, () => new RequestEmulator(NhHelper.GetSessionFactory()));
+			_workflow = new Workflow(_publicador.Object, DefaultEventoRepository, DefaultPersonaRepository, () => new RequestEmulator(NhHelper.GetSessionFactory()));
 		}
 
 		[Test]
--- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Aug 24 08:41:34 2011 -0300
@@ -21,7 +21,7 @@
 
 			var publicador = new TwitterPublicador(adapter.Object);
 
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
 
 			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
 
@@ -43,7 +43,7 @@
 
 			var publicador = new TwitterPublicador(adapter.Object);
 
-			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository, DefaultPatrocinadorRepository);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
 			agenda.Proponer("Identity Providers", null, null, TipoEvento.GrupoEstudio);
 
 			adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Once());
--- a/Agendas/trunk/src/Agendas.Web/Content/Site.css	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Content/Site.css	Wed Aug 24 08:41:34 2011 -0300
@@ -1,24 +1,24 @@
-/*----------------------------------------------------------
-The base color for this template is #5c87b2. If you'd like
-to use a different color start by replacing all instances of
-#5c87b2 with your new color.
-----------------------------------------------------------*/
-body
-{
-    background: url("themes/altnethispano/images/header-background.gif") repeat-x scroll 0 0 #FFFFFF;
-    font-family: Verdana, Tahoma, Arial, "Helvetica Neue", Helvetica, Sans-Serif;
-    font-size: 70%;
-    margin: 0;
-    margin: 0 auto;
-    width: 1024px;
+body {
+	font-family: Arial, Helvetica, sans-serif;
+	/* font-family: Tahoma, sans-serif; */
+	font-size: 62.5%;
+	color: #575757;
+	text-align: left;
+	margin: 0;
 	padding: 0;
-    color: #575757;
+	background: #fff url("themes/altnethispano/images/header-background.gif") repeat-x 0 0;
+}
+html, body {
+	height: 100%;
+}
+*{
+	margin: 0;
+	padding: 0;	
 }
 
-.logo {
-	float: right;
+a img, img {
+	border: 0;
 }
-
 a:link
 {
     color: #034af3;
@@ -43,7 +43,6 @@
     margin-bottom: 20px;
     line-height: 1.6em;
 }
-
 /* HEADINGS   
 ----------------------------------------------------------*/
 h1, h2, h3, h4, h5, h6
@@ -81,118 +80,64 @@
     margin-top: 0;
 }
 
-/* PRIMARY LAYOUT ELEMENTS   
-----------------------------------------------------------*/
-
-/* you can specify a greater or lesser percentage for the 
-page width. Or, you can specify an exact pixel width. */
-.page
+/* Layout */
+.wrapper 
 {
-    margin-left: auto;
-    margin-right: auto;
+    margin: 0 auto;
+    width: 1024px;
 }
-
-#portal {
-	display: inline;
-}
-
-#header
-{
-	position: relative;
-    background: url("themes/altnethispano/images/div_wrapperIn.gif") repeat-x scroll 0 0 #FFFFFF;
-    margin-bottom: 0px;
-    padding: 0;
-}
-
-#header h1
+.wrapperIn
 {
-    font-weight: bold;
-    padding: 5px 0;
-    margin: 0;
-    border: none;
-    line-height: 2em;
-    font-size: 32px !important;
+	margin: 0 auto;
+	width: 1024px;
+	background: #fff url("themes/altnethispano/images/div_wrapperIn.gif") no-repeat 50% 38px;
+	float: left;
 }
-
-#main
+#header 
 {
-    background: url("themes/altnethispano/images/div_content.gif") repeat-x 0 0 #efeff0;
-    padding: 30px 30px 15px 30px;
-	height: 540px;
-	margin-left: auto;
-	margin-right: auto;
-    _height: 1px; /* only IE6 applies CSS properties starting with an underscore */
+	width: 100%;
+	height: 122px;
+	position: relative;
 }
-
-#content
+.navigation
 {
-	margin-bottom: 20px;
+    height: 38px !important;	
+	background: #7e8080 url("themes/altnethispano/images/div_navigation.gif") repeat-x 0 100%;
+	width: 100% !important;
 }
-
-#footer
+.page 
 {
-    color: #999;
-    padding: 10px 0;
-    text-align: center;
-    line-height: normal;
-    margin: 0;
-    font-size: .9em;
-	background-color:  #efeff0;
+	margin: 0 auto;
+	padding: 0 10px;
+	width: 1004px;
+	float: left;
+	background: transparent url("themes/altnethispano/images/div_content.gif") no-repeat 50% 100%;
 }
-
-/* TAB MENU   
-----------------------------------------------------------*/
-ul#menu
+#main 
 {
-    padding: 50px 0px 0px;
-    position: relative;
-    margin: 0;
-    text-align: right;
+	width: 794px;
+	float: left;
+	font-size: 1.4em;
+    line-height:120%;
+	padding: 20px 20px 0 30px;
 }
-
-ul#menu li
-{
-    background: url("themes/altnethispano/images/menu.png") repeat-y scroll 0 0 #fff;
-    border: 1px solid #979797;
-    padding: 5px 20px;
-    display: inline;
-    list-style: none;
-    color: #575757;
-}
-
-ul#menu li#greeting
+#footer 
 {
-    font-weight: bold;
-    text-decoration: none;
-    line-height: 2.8em;
-    color: #575757;
+	width: 100%;
+	float: left;
+	margin: 20px 0 0;
+	padding: 10px 0;
+	background: transparent url("themes/altnethispano/images/ul_topsponsors_li.gif") repeat-x 0 0;
 }
-
-ul#menu li a
-{
-    font-weight: bold;
-    text-decoration: none;
-    line-height: 2.8em;
-    color: #575757;
-}
-
-ul#menu li a:hover
+.userGroupLogo 
 {
-    background-color: #fff;
-    text-decoration: none;
-}
-
-ul#menu li a:active
-{
-    background-color: #fff;
-	color: #000;
-    text-decoration: none;
-}
-
-ul#menu li.selected a
-{
-    background-color: #fff;
-    color: #000;
+	padding: 0 10px;
+	width: 205px;
+	height: 88px;
+	background: transparent url("themes/altnethispano/images/div_logo.png") no-repeat 0 0;
+	position: absolute;
+	top: 0;
+	left: 0;
 }
 
 /* FORM LAYOUT ELEMENTS   
@@ -227,14 +172,19 @@
     width: 200px;
     border: 1px solid #CCC;
 }
+input[type="checkbox"]
+{
+    margin: 3px;
+}
 
 /* TABLE
 ----------------------------------------------------------*/
 
 table 
 {
-  border: solid 1px #e8eef4;
-  border-collapse: collapse;
+    border: solid 1px #e8eef4;
+    border-collapse: collapse;
+    margin-bottom: 5px;
 }
 
 table td 
@@ -263,17 +213,14 @@
     color:Red;
 }
 
-#menucontainer
-{
-    margin-top: 7px;
-    height: 80px;
-}
-
 div#title
 {
-    display:block;
-    float:left;
-    text-align:left;
+    display: block;
+    float: left;
+    left: 250px;
+    position: absolute;
+    text-align: left;
+    top: 30px;
 }
 
 #logindisplay
@@ -362,61 +309,6 @@
     width: 6em;
 }
 
-/* Portal menu
-------------------------------------------------------*/
-ul#portalmenu
-{
-	width: 50%;
-    padding: 0 0;
-    position: relative;
-    margin: 0;
-    text-align: left;
-    display:inline;
-}
-
-ul#portalmenu li
-{
-    display: inline;
-    list-style: none;
-}
-
-ul#portalmenu li#greeting
-{
-    font-weight: bold;
-    text-decoration: none;
-    line-height: 2.8em;
-    color: #fff;
-}
-
-ul#portalmenu li a
-{
-    background: url("themes/altnethispano/images/menu.png") repeat-y scroll 0 0 #fff;
-    border: 1px solid #979797;
-    padding: 5px 20px;
-    font-weight: bold;
-    text-decoration: none;
-    line-height: 2.8em;
-	color: #575757;
-}
-
-ul#portalmenu li a:hover
-{
-    background-color : #E6E6E6;
-    text-decoration: none;
-	color: #575757;
-}
-
-ul#portalmenu li a:active
-{
-    background-color: #a6e2a6;
-    text-decoration: none;
-}
-
-ul#portalmenu li.selected a
-{
-    background-color: #fff;
-    color: #000;
-}
 
 /* Buttons */
 .buttons a
@@ -425,4 +317,101 @@
     vertical-align: middle;
     padding: 10px 10px 10px 10px;
 	color: #000;
+}
+
+
+/* MENU */
+.RadMenu {
+    position: relative;
+    white-space: nowrap;
+    width: 50%;
+}
+.RadMenu .rmRootGroup {
+    display: inline-block;
+    left: 0;
+    margin: 0;
+    padding: 0;
+    position: relative;
+}
+.RadMenu .rmHorizontal .rmItem {
+    clear: none;
+}
+.RadMenu .rmItem {
+    float: left;
+    list-style: none outside none;
+    position: relative;
+}
+* html .RadMenu .rmItem {
+    display: inline;
+}
+.RadMenu .rmItem {
+    padding: 0;
+}
+.RadMenu a.rmLink {
+    cursor: default;
+    display: block;
+}
+.RadMenu .rmLink {
+    float: left;
+    outline: 0 none;
+    padding: 0 0 0 12px;
+}
+.RadMenu .rmLink {
+    width: auto;
+}
+.RadMenu .rmHorizontal .rmText {
+    padding: 0 12px 1px 0;
+}
+.RadMenu_Default .rmRootGroup, .RadMenu_Default .rmLink, .RadMenu_Default .rmText, .RadMenu_Default .rmLeftArrow, .RadMenu_Default .rmRightArrow, .RadMenu_Default .rmTopArrow, .RadMenu_Default .rmBottomArrow {
+    background-color: transparent;
+    background-image: url("themes/altnethispano/images/menu.png");
+}
+
+.RadMenu_Default .rmFirst .rmLink, .RadMenu_Default .rmFirst .rmLink:hover, .RadMenu_Default .rmLast .rmText, .RadMenu_Default .rmLast .rmLink:hover .rmText, .RadMenu_Default .rmVertical .rmLink, .RadMenu_Default .rmVertical .rmText {
+    background-position: 0 500px;
+    background-repeat: no-repeat;
+}
+.RadMenu_Default .rmLink, .RadMenu_Default .rmDisabled, .RadMenu_Default .rmDisabled:hover {
+    background-position: 0 -72px;
+}
+.RadMenu_Default, .RadMenu_Default .rmLink {
+    color: #000000;
+    font: 12px/23px "Segoe UI",Arial,sans-serif;
+    text-decoration: none;
+}
+.RadMenu_Default .rmRootGroup, .RadMenu_Default .rmLink, .RadMenu_Default .rmText, .RadMenu_Default .rmLeftArrow, .RadMenu_Default .rmRightArrow, .RadMenu_Default .rmTopArrow, .RadMenu_Default .rmBottomArrow {
+    background-color: transparent;
+    background-image: url("themes/altnethispano/images/menu.png");
+}
+.RadMenu_Default .rmText, .RadMenu_Default .rmDisabled .rmText, .RadMenu_Default .rmDisabled:hover .rmText {
+    background-position: 100% -96px;
+}
+
+.RadMenu_Default .rmRootGroup, .RadMenu_Default .rmLink, .RadMenu_Default .rmText, .RadMenu_Default .rmLeftArrow, .RadMenu_Default .rmRightArrow, .RadMenu_Default .rmTopArrow, .RadMenu_Default .rmBottomArrow {
+    background-color: transparent;
+    background-image: url("themes/altnethispano/images/menu.png");
+}
+
+.RadMenu_Default .rmRootGroup {
+    background-color: #E6E6E6;
+    background-position: 0 -408px;
+    background-repeat: repeat-x;
+    border: 1px solid #828282;
+}
+.RadMenu_Default .rmLink:hover, .RadMenu_Default .rmFocused, .RadMenu_Default .rmSelected {
+    background-color: #FFFFFF;
+}
+.RadMenu_Default, .RadMenu_Default .rmLink {
+    color: #000000;
+    font: 12px/23px "Segoe UI",Arial,sans-serif;
+    text-decoration: none;
+}
+
+.RadMenu .rmText {
+    float: left;
+    padding-bottom: 1px;
+}
+
+.RadMenu .rmText {
+    display: block;
 }
\ No newline at end of file
Binary file Agendas/trunk/src/Agendas.Web/Content/themes/altnethispano/images/div_logo.png has changed
Binary file Agendas/trunk/src/Agendas.Web/Content/themes/altnethispano/images/div_navigation.gif has changed
Binary file Agendas/trunk/src/Agendas.Web/Content/themes/altnethispano/images/ul_topsponsors_li.gif has changed
--- a/Agendas/trunk/src/Agendas.Web/Views/Account/LogOn.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Account/LogOn.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -1,4 +1,4 @@
-<h2>Log On</h2>
+<h2>Ingresar</h2>
 <p>
     Seleccione el proveedor con que quiere demostrar su identidad
 </p>
--- a/Agendas/trunk/src/Agendas.Web/Views/Home/Index.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Home/Index.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -1,4 +1,4 @@
-<h2>Home Page</h2>
+<h2>Inicio</h2>
 
 <p>
     Bienvenido al módulo de gestión de VANs de <a href='http://www.altnethispano.org/'>alt.net-hispano</a>, desde aquí podrá:
--- a/Agendas/trunk/src/Agendas.Web/Views/Shared/EditorTemplates/DateTime.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Shared/EditorTemplates/DateTime.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -1,7 +1,7 @@
 @model DateTime?
 <script type="text/javascript">
     $(document).ready(function () {
-        $("#@ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty)").datepicker({ dateFormat: 'dd-mm-yy' });
+        $("#@ViewData.TemplateInfo.GetFullHtmlFieldId(string.Empty)").datepicker({ dateFormat: 'dd/mm/yy' });
     });
 </script>
 @Html.TextBox(string.Empty, (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { style = "width: 80px" })
--- a/Agendas/trunk/src/Agendas.Web/Views/Shared/_Layout.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Shared/_Layout.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -28,35 +28,38 @@
 </head>
 
 <body>
-	@Html.Partial("_MenuPortal")
-	<div id="logindisplay">
-		@Html.Partial("_LogOnPartial")
-	</div>
-
-    <div class="page">
-        <div id="header">
-            <div id="title">
-                <h1>Gestión de VANs</h1>
-            </div>
-
-            <div id="menucontainer">
-				@Html.Partial("_Menu")
+    <div class="wrapper">
+        <div class="wrapperIn">
+            <div class="navigation">
+                <div class="RadMenu RadMenu_Default">
+                    @Html.Partial("_MenuPortal")
+                    @Html.Partial("_Menu")
+                </div>
+                <div id="logindisplay">
+		            @Html.Partial("_LogOnPartial")
+	            </div>
             </div>
-        </div>
-
-        <div id="main">
-			@Html.Partial("_Messages")
-			<div class="logo">
-				<img alt="logo" src="@Url.Content("~/Content/altnetlogo.png")" />
-			</div>
-            @RenderBody()
-        </div>
-        <div id="footer">
-			Contacto: <a href="mailto:contacto@althethispano.org" alt="contacto@althethispano.org">contacto@althethispano.org</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-			<strong>hosting by </strong>
-			<a target="_blank" title="DiscountASP" href="http://www.discountasp.com/">
-				<img src="/Content/themes/altnethispano/images/logoDiscountASPNET.gif" alt="DiscountASP.NET" height="25" />
-			</a>
+    	    <div id="header">
+                <p class="userGroupLogo">
+				    <img alt="logo" src="@Url.Content("~/Content/altnetlogo.png")" />
+			    </p>
+                <div id="title">
+                    <h1>Gestión de VANs</h1>
+                </div>
+		    </div>
+	        <div class="page">
+                <div id="main">
+			        @Html.Partial("_Messages")
+	                @RenderBody()
+                </div>
+                <div id="footer">
+			        Contacto: <a href="http://altnethispano.org/contactenos.aspx" alt="contacto@althethispano.org">contacto@althethispano.org</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+			        <strong>hosting by </strong>
+			        <a target="_blank" title="DiscountASP" href="http://www.discountasp.com/">
+				        <img src="@Url.Content("~/Content/themes/altnethispano/images/logoDiscountASPNET.gif")" title="DiscountASP.NET" alt="DiscountASP.NET" height="25" />
+			        </a>
+                </div>
+            </div>
         </div>
     </div>
 </body>
--- a/Agendas/trunk/src/Agendas.Web/Views/Shared/_Menu.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Shared/_Menu.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -1,12 +1,23 @@
-<ul id="menu">
-    <li>@Html.ActionLink("Home", "Index", "Home")</li>
-    <li>@Html.ActionLink("Eventos", "Index", "Evento")</li>
-    <li>@Html.ActionLink("Histórico", "Index", "Historico")</li>
+<ul id="menu" class="rmRootGroup rmHorizontal">
+    <li class="rmItem rmFirst">
+        <a class="rmLink" href="@Url.Action("Index", "Home")"><span class="rmText">Inicio</span></a>
+    </li>
+    <li class="rmItem">
+        <a class="rmLink" href="@Url.Action("Index", "Evento")"><span class="rmText">Eventos</span></a>
+    </li>
+    <li class="rmItem">
+        <a class="rmLink" href="@Url.Action("Index", "Historico")"><span class="rmText">Histórico</span></a>
+    </li>
 @if (Request.IsAuthenticated)
 {
-    <li>@Html.ActionLink("Perfil", "Index", "Perfil")</li>
-    <li>@Html.ActionLink("Personas", "Index", "Persona")</li>
+    <li class="rmItem">
+        <a class="rmLink" href="@Url.Action("Index", "Perfil")"><span class="rmText">Perfil</span></a>
+    </li>
+    <li class="rmItem">
+        <a class="rmLink" href="@Url.Action("Index", "Persona")"><span class="rmText">Personas</span></a>
+    </li>
 }
-    <li>@Html.ActionLink("About", "About", "Home")</li>
+    <li class="rmItem rmLast">
+        <a class="rmLink" href="@Url.Action("About", "Home")"><span class="rmText">Acerca de</span></a>
+    </li>
 </ul>
-
--- a/Agendas/trunk/src/Agendas.Web/Views/Shared/_MenuPortal.cshtml	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Views/Shared/_MenuPortal.cshtml	Wed Aug 24 08:41:34 2011 -0300
@@ -1,5 +1,5 @@
-<ul id="portalmenu">
-    <li><a href="http://altnethispano.org/">Inicio</a></li>
-    <li><a href="http://altnethispano.org/wiki">Wiki</a></li>
+<ul class="rmRootGroup rmHorizontal">
+    <li class="rmItem rmFirst"><a class="rmLink" href="http://altnethispano.org/"><span class="rmText">Portal</span></a></li>
+    <li class="rmItem rmLast"><a class="rmLink" href="http://altnethispano.org/wiki"><span class="rmText">Wiki</span></a></li>
 </ul>
 
--- a/Agendas/trunk/src/Agendas.Web/Web.config	Wed Aug 24 08:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Web/Web.config	Wed Aug 24 08:41:34 2011 -0300
@@ -70,6 +70,8 @@
 				<add namespace="System.Web.WebPages"/>
 			</namespaces>
 		</pages>
+
+    <globalization culture="es-ES" />
 	</system.web>
 
 	<system.webServer>