# HG changeset patch # User nelopauselli # Date 1317248089 10800 # Node ID 33976aea754649d32e6478905c37bca12243ad93 # Parent 9f61e85551147ed7d71c8906ad59e2c8959a0ff7 Varios Ponentes en calendario diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Domain/Evento.cs --- 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 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 diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Google.Test/PublicadorTest.cs --- 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(), It.IsAny(), out message), Times.Once()); } + + [Test] + public void PublicarConMasDeUnPonente() + { + var adapter = new Mock(); + 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 diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Google/DetailsEvents/VanGEventDetail.cs --- 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); } diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Twitter.Tests/Publicador_tests.cs --- 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(), out message), Times.Exactly(2)); diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Twitter/Writers/AgendarTwitterWriter.cs --- 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, diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Twitter/Writers/ConfirmarTwitterWriter.cs --- 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}; } diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Twitter/Writers/PublicarTwitterWriter.cs --- 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) }; } } diff -r 9f61e8555114 -r 33976aea7546 Agendas/trunk/src/Agendas.Twitter/Writers/TwitterHelper.cs --- 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 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