diff Agendas/trunk/src/Agendas.Domain/Evento.cs @ 57:3d9e6d56d903

Refactoring del track de cambios de un evento
author nelopauselli
date Mon, 16 May 2011 20:23:31 -0300
parents 65bbcdd5d357
children cb3f7b47c1f0
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Mon May 16 20:15:05 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Mon May 16 20:23:31 2011 -0300
@@ -8,10 +8,24 @@
 		private readonly IList<Track> _tracks;
 		private IList<string> _enlaces;
 
-		public Evento(string titulo)
+		public static Evento Proponer(string titulo, Ponente ponente)
 		{
-			Titulo = titulo;
+			var evento = new Evento { Titulo = titulo, Ponente = ponente };
+			evento.AddTracks(new Track(Accion.Proponer));
+
+			return evento;
+		}
 
+		public static Evento Publicar(string titulo, Ponente ponente, DateTime fecha)
+		{
+			var evento = new Evento { Titulo = titulo };
+			evento.Publicar(ponente, fecha);
+
+			return evento;
+		}
+
+		private Evento()
+		{
 			_enlaces = new List<string>();
 			_tracks = new List<Track>();
 		}
@@ -20,7 +34,6 @@
 		public DateTime? Fecha { get; private set; }
 		public string Sintesis { get; private set; }
 		public Ponente Ponente { get; private set; }
-		protected string Usuario { get; private set; }
 
 		public IEnumerable<string> Enlaces
 		{
@@ -34,29 +47,20 @@
 
 		public void Actualizar(Ponente ponente, DateTime? fecha)
 		{
-			Usuario = IdentityContext.GetUserName();
 			Ponente = ponente;
 			Fecha = fecha;
 
 			AddTracks(new Track(Accion.Modificar));
 		}
 
-		public void Actualizar(Ponente ponente)
-		{
-			Usuario = IdentityContext.GetUserName();
-			Ponente = ponente;
-		}
-
 		public void CambiarTitulo(string titulo)
 		{
-			Usuario = IdentityContext.GetUserName();
 			Titulo = titulo;
 			AddTracks(new Track(Accion.CambiarTitulo));
 		}
 
 		public void Publicar(Ponente ponente, DateTime? fecha)
 		{
-			Usuario = IdentityContext.GetUserName();
 			Ponente = ponente;
 			Fecha = fecha;
 			AddTracks(new Track(Accion.Publicar));
@@ -64,7 +68,6 @@
 
 		public void Realizado(DateTime fecha, string sintesis, IList<string> enlaces)
 		{
-			Usuario = IdentityContext.GetUserName();
 			Fecha = fecha;
 			Sintesis = sintesis;
 			_enlaces = enlaces;
@@ -72,7 +75,6 @@
 
 		public void Realizado(string sintesis)
 		{
-			Usuario = IdentityContext.GetUserName();
 			Sintesis = sintesis;
 			AddTracks(new Track(Accion.Realizar));
 		}
@@ -82,22 +84,4 @@
 			_tracks.Add(track);
 		}
 	}
-
-	public class Track
-	{
-		public Track(string accion)
-		{
-			Accion = accion;
-		}
-
-		public string Accion { get; private set; }
-	}
-
-	public class Accion
-	{
-		public const string Publicar = "Publicar";
-		public const string Modificar = "Modificar";
-		public const string CambiarTitulo = "CambiarTitulo";
-		public const string Realizar = "Realizar";
-	}
 }
\ No newline at end of file