# HG changeset patch # User Jorge@Jorge-PC # Date 1308961101 10800 # Node ID c3573defd18f1a5a8de3a35ecf3d5e69b2e51f82 # Parent 1ce71844ffa4a58007620e54086efa5c60f36b2f Agregado de Fecha, Usuario y Successful en TrackLog Modificacion de publicador de blog para usar TrackLog Agregado de TrackLog en el test de crud de eventos Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true diff -r 1ce71844ffa4 -r c3573defd18f Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs --- a/Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs Sat Jun 11 12:50:44 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs Fri Jun 24 21:18:21 2011 -0300 @@ -1,21 +1,35 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Linq; using AltNetHispano.Agendas.Domain; namespace Agendas.Blog.Impl { - public class BlogPublicador : IPublicador - { - private readonly IPostWriterFactory _postWriterFactory; + public class BlogPublicador : IPublicador + { + private readonly IPostWriterFactory _postWriterFactory; + + public BlogPublicador(IPostWriterFactory postWriterFactory) + { + _postWriterFactory = postWriterFactory; + } - public BlogPublicador(IPostWriterFactory postWriterFactory) - { - _postWriterFactory = postWriterFactory; - } + public void Publicar(IEnumerable tracks) + { + foreach (var track in tracks) + { + if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Blog && l.Successful)) continue; - public void Publicar(IEnumerable tracks) - { - foreach (var track in tracks) - _postWriterFactory.GetPostWriter(track.Accion).WritePost(track); - } - } + try + { + _postWriterFactory.GetPostWriter(track.Accion).WritePost(track); + track.LogAdd(new TrackLog(TrackLogPropietario.Blog, string.Empty, track.Usuario, true)); + } + catch (Exception ex) + { + track.LogAdd(new TrackLog(TrackLogPropietario.Blog, ex.Message, track.Usuario, false)); + } + } + } + } } diff -r 1ce71844ffa4 -r c3573defd18f Agendas/trunk/src/Agendas.Domain/TrackLog.cs --- a/Agendas/trunk/src/Agendas.Domain/TrackLog.cs Sat Jun 11 12:50:44 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/TrackLog.cs Fri Jun 24 21:18:21 2011 -0300 @@ -1,4 +1,6 @@ -namespace AltNetHispano.Agendas.Domain +using System; + +namespace AltNetHispano.Agendas.Domain { public class TrackLog : Identificable { @@ -6,20 +8,27 @@ { } - public TrackLog(TrackLogPropietario propietario, string mensaje) + public TrackLog(TrackLogPropietario propietario, string mensaje, Persona usuario, bool successful) { Propietario = propietario; Mensaje = mensaje; + Fecha = DateTime.Now; + Usuario = usuario; + Successful = successful; } public virtual TrackLogPropietario Propietario { get; set; } public virtual string Mensaje { get; set; } public virtual Track Track { get; set; } + public virtual Persona Usuario { get; set; } + public virtual bool Successful { get; set; } + public virtual DateTime Fecha { get; set; } } public enum TrackLogPropietario { - Twitter = 1 + Twitter = 1, + Blog = 2 } diff -r 1ce71844ffa4 -r c3573defd18f Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs --- a/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Sat Jun 11 12:50:44 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Fri Jun 24 21:18:21 2011 -0300 @@ -27,7 +27,12 @@ var ponente = new Persona("Carlos Blé"); _personaRepository.Save(ponente); - var evento = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente, string.Empty, TipoEvento.Van); + var usuario = new Persona("Nelo"); + _personaRepository.Save(usuario); + + var evento = Evento.Proponer("TDD - Diseño Basado en Ejemplos", ponente, string.Empty, TipoEvento.Van); + evento.Tracks.First().LogAdd(new TrackLog(TrackLogPropietario.Twitter, "Mensaje", usuario, true)); + _eventoRepository.Save(evento); return evento.Id; diff -r 1ce71844ffa4 -r c3573defd18f Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs --- a/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Sat Jun 11 12:50:44 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs Fri Jun 24 21:18:21 2011 -0300 @@ -49,14 +49,14 @@ foreach (var track in tracks) { //Si ya hicimos el twitt de este track, no volvemos a hacerlo - if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter)) continue; + if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter && l.Successful)) continue; var twitt = BuildTwitt(track); if (!string.IsNullOrWhiteSpace(twitt)) { string message; - Publicar(twitt, out message); - track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message)); + bool success = Publicar(twitt, out message); + track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, success)); } } }