changeset 121:683cc27450ce

Merge
author Jorge@Jorge-PC
date Fri, 24 Jun 2011 21:19:42 -0300
parents c3573defd18f (diff) 8fa58a79656a (current diff)
children 17531db40d4e
files Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs Agendas/trunk/src/Agendas.Web/Views/Evento/Edit.cshtml Agendas/trunk/src/Agendas.Web/Views/Evento/New.cshtml Agendas/trunk/src/Agendas.Web/Views/Propuesta/Edit.cshtml Agendas/trunk/src/Agendas.Web/Views/Propuesta/Index.cshtml Agendas/trunk/src/Agendas.Web/Views/Propuesta/New.cshtml
diffstat 4 files changed, 49 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs	Wed Jun 22 09:49:07 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Blog/Impl/BlogPublicador.cs	Fri Jun 24 21:19:42 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	Wed Jun 22 09:49:07 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/TrackLog.cs	Fri Jun 24 21:19:42 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	Wed Jun 22 09:49:07 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Tests/Cruds/EventoCrud.cs	Fri Jun 24 21:19:42 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	Wed Jun 22 09:49:07 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs	Fri Jun 24 21:19:42 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));
 				}
 			}
 		}