diff Agendas/trunk/src/Agendas.Domain/TrackLog.cs @ 182:beeb48ddb44a

Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
author nelopauselli
date Mon, 08 Aug 2011 21:57:10 -0300
parents a6d20ea228a5
children
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/TrackLog.cs	Mon Aug 08 20:08:31 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/TrackLog.cs	Mon Aug 08 21:57:10 2011 -0300
@@ -8,29 +8,58 @@
 		{
 		}
 
-		public TrackLog(TrackLogPropietario propietario, string mensaje, Persona usuario, bool successful)
+		private TrackLog(TrackLogPropietario propietario, Persona usuario)
 		{
 			Propietario = propietario;
+			Usuario = usuario;
+			Fecha = DateTime.Now;
+		}
+
+		public TrackLog(TrackLogPropietario propietario, string mensaje, Persona usuario, bool successful)
+			: this(propietario, usuario)
+		{
 			Mensaje = mensaje;
-		  Fecha = DateTime.Now;
-		  Usuario = usuario;
-		  Successful = successful;
+			Successful = successful;
+		}
+
+		public TrackLog(TrackLogPropietario propietario, Persona usuario, Exception exception)
+			: this(propietario, usuario)
+		{
+			while (exception.InnerException != null)
+				exception = exception.InnerException;
+
+			Mensaje = exception.Message;
 		}
 
 		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 virtual Persona Usuario { get; set; }
+		public virtual bool Successful { get; set; }
+		public virtual DateTime Fecha { get; set; }
+
+		public virtual string WarningMessage
+		{
+			get
+			{
+				switch (Propietario)
+				{
+					case TrackLogPropietario.Twitter:
+						return "No se pudo enviar los twitters: " + Mensaje;
+					case TrackLogPropietario.Calendario:
+						return "No se pudo escribir en el calendario: " + Mensaje;
+					case TrackLogPropietario.Blog:
+						return "No se pudo escribir en el blog: " + Mensaje;
+				}
+				return Mensaje;
+			}
+		}
 	}
 
 	public enum TrackLogPropietario
 	{
 		Twitter = 1,
-        Blog = 2,
-        Calendario = 3
+		Blog = 2,
+		Calendario = 3
 	}
-
-
 }
\ No newline at end of file