Mercurial > altnet-hispano
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