view Agendas/trunk/src/Agendas.Domain/TrackLog.cs @ 216:8a8c35302b81

Merge
author nelopauselli
date Mon, 05 Sep 2011 20:43:32 -0300
parents beeb48ddb44a
children
line wrap: on
line source

using System;

namespace AltNetHispano.Agendas.Domain
{
	public class TrackLog : Identificable
	{
		protected TrackLog()
		{
		}

		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;
			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 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
	}
}