changeset 120:c3573defd18f

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
author Jorge@Jorge-PC
date Fri, 24 Jun 2011 21:18:21 -0300
parents 1ce71844ffa4
children 683cc27450ce
files Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs Agendas/trunk/src/Agendas.Domain/TrackLog.cs Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs
diffstat 4 files changed, 49 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- 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<Track> tracks)
+		{
+			foreach (var track in tracks)
+			{
+				if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Blog && l.Successful)) continue;
 
-    public void Publicar(IEnumerable<Track> 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));
+				}
+			}
+		}
+	}
 }
--- 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
 	}
 
 
--- 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;
--- 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));
 				}
 			}
 		}