changeset 229:33976aea7546

Varios Ponentes en calendario
author nelopauselli
date Wed, 28 Sep 2011 19:14:49 -0300
parents 9f61e8555114
children e38d53a1ead9
files Agendas/trunk/src/Agendas.Domain/Evento.cs Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs Agendas/trunk/src/Agendas.Twitter/Writers/AgendarTwitterWriter.cs Agendas/trunk/src/Agendas.Twitter/Writers/ConfirmarTwitterWriter.cs Agendas/trunk/src/Agendas.Twitter/Writers/PublicarTwitterWriter.cs Agendas/trunk/src/Agendas.Twitter/Writers/TwitterHelper.cs
diffstat 8 files changed, 49 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -249,5 +249,21 @@
 				logs.AddRange(track.GetLogsNews());
 			return logs;
 		}
+
+		public virtual string GetPonentesAsString(Func<Persona, string> predicate)
+		{
+    		var nombres = Ponentes.Select(predicate.Invoke).ToArray();
+			string texto = string.Empty;
+			for (int i = 0; i < nombres.Length; i++)
+			{
+				var nombre = nombres[i];
+				if (i == nombres.Length - 1 && i>0)
+					texto += " y ";
+				else if (i != 0)
+					texto += ", ";
+				texto += nombre;
+			}
+			return texto;
+		}
 	}
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -179,5 +179,25 @@
             agenda.Cancelar(evento.Id);
             adapter.Verify(ad => ad.DeleteEvent(It.IsAny<DateTime>(), It.IsAny<DateTime>(), out message), Times.Once());
         }
+
+		[Test]
+		public void PublicarConMasDeUnPonente()
+		{
+			var adapter = new Mock<IGCalendarAdapter>();
+			var detail = new VanGEventDetail();
+			var fechaInicio = new DateTime(2011, 07, 09, 18, 0, 0, DateTimeKind.Utc);
+			var fechaTermino = fechaInicio.AddHours(2);
+
+			var publicador = new GooglePublicador(adapter.Object);
+			var agenda = new Agenda(publicador, DefaultEventoRepository, DefaultPersonaRepository);
+			agenda.Agendar("Identity Providers Públicos y Empresariales", TestsHelper.GetOrCreatePonente("Carlos Peix"), fechaInicio,
+						   fechaTermino, "https://groups.google.com/d/topic/altnet-hispano/arYEMsPiAtY/discussion",
+						   TipoEvento.Van, new[] { TestsHelper.GetOrCreatePonente("Nelo Pauselli") });
+
+			var ev = DefaultEventoRepository.GetActivos()[0];
+			detail.Generate(ev);
+
+			Assert.That(detail.Summary, Is.StringContaining("Carlos Peix y Nelo Pauselli."));
+		}
     }
 }
\ No newline at end of file
--- a/Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -1,5 +1,7 @@
 using System;
+using System.Collections.Generic;
 using System.Globalization;
+using System.Linq;
 using AltNetHispano.Agendas.Domain;
 
 namespace AltNetHispano.Agendas.Google.DetailsEvents
@@ -29,7 +31,7 @@
             var cultureInfo = new CultureInfo( "es-ES", false ).DateTimeFormat;
 
             Summary = TextoVan.Replace("[NOMBRE]", evento.Titulo).
-                Replace("[NOMBRE_EXPOSITOR]", evento.Ponente.Nombre).
+				Replace("[NOMBRE_EXPOSITOR]", evento.GetPonentesAsString(p => p.Nombre)).
                 Replace("[FECHA]", StartEvent.ToString("D", cultureInfo)).
                 Replace("[URL_DISCUCION]", evento.UrlInvitacion);
         }
--- a/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -96,7 +96,7 @@
 			Assert.That(joined, Is.StringContaining("@nelopauselli"));
 
 			Assert.AreEqual(2, twitters.Count());
-			Assert.AreEqual("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix, @nelopauselli para el 01/10/2011...", twitters.First());
+			Assert.AreEqual("Se ha agendando el evento Identity Providers Públicos y Empresariales con @carlospeix y @nelopauselli para el 01/10/2011...", twitters.First());
 			Assert.AreEqual("...por http://snipr.com/virtualaltnet", twitters.Last());
 
 			adapter.Verify(a => a.Update(It.IsAny<string>(), out message), Times.Exactly(2));
--- a/Agendas/trunk/src/Agendas.Twitter/Writers/AgendarTwitterWriter.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter/Writers/AgendarTwitterWriter.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -9,7 +9,7 @@
 			return new[]
 			       	{
 			       		"Se ha agendando el evento " + track.Evento.Titulo,
-			       		" con " + TwitterHelper.GetPonentes(track.Evento.Ponentes),
+			       		" con " + TwitterHelper.GetPonentes(track.Evento),
 			       		track.Evento.FechaInicio.HasValue
 			       			? " para el " + track.Evento.FechaInicio.Value.ToShortDateString()
 			       			: string.Empty,
--- a/Agendas/trunk/src/Agendas.Twitter/Writers/ConfirmarTwitterWriter.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter/Writers/ConfirmarTwitterWriter.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -12,7 +12,7 @@
 					       	{
 					       		"Se confirma para el " + track.Evento.FechaInicio.Value.ToShortDateString(),
 					       		" el evento " + track.Evento.Titulo,
-					       		" con " + TwitterHelper.GetPonentes(track.Evento.Ponentes)
+					       		" con " + TwitterHelper.GetPonentes(track.Evento)
 					       	};
 				return new[] {string.Empty};
 			}
--- a/Agendas/trunk/src/Agendas.Twitter/Writers/PublicarTwitterWriter.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter/Writers/PublicarTwitterWriter.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -1,4 +1,5 @@
-using AltNetHispano.Agendas.Domain;
+using System;
+using AltNetHispano.Agendas.Domain;
 
 namespace AltNetHispano.Agendas.Twitter.Writers
 {
@@ -9,7 +10,7 @@
 			return new[]
 			       	{
 			       		"Se ha publicado el video del evento " + track.Evento.Titulo,
-			       		" con " + TwitterHelper.GetPonentes(track.Evento.Ponentes)
+			       		" con " + TwitterHelper.GetPonentes(track.Evento)
 			       	};
 		}
 	}
--- a/Agendas/trunk/src/Agendas.Twitter/Writers/TwitterHelper.cs	Wed Sep 28 18:51:53 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter/Writers/TwitterHelper.cs	Wed Sep 28 19:14:49 2011 -0300
@@ -1,25 +1,12 @@
-using System.Collections.Generic;
-using System.Linq;
-using AltNetHispano.Agendas.Domain;
+using AltNetHispano.Agendas.Domain;
 
 namespace AltNetHispano.Agendas.Twitter.Writers
 {
 	public static class TwitterHelper
 	{
-		public static string GetPonentes(IEnumerable<Persona> ponentes)
+		public static string GetPonentes(Evento evento)
 		{
-			var nombres = ponentes.Select(GetPonente).ToArray();
-			string texto = string.Empty;
-			for (int i = 0; i < nombres.Length; i++)
-			{
-				var nombre = nombres[i];
-				if (i == nombre.Length-1)
-					texto += " y ";
-				else if (i != 0)
-					texto += ", ";
-				texto += nombre;
-			}
-			return texto;
+			return evento.GetPonentesAsString(GetPonente);
 		}
 
 		private static string GetPonente(Persona ponente)
@@ -28,5 +15,6 @@
 				return "@" + ponente.Twitter;
 			return ponente.Nombre;
 		}
+
 	}
 }
\ No newline at end of file