diff Agendas/trunk/src/Agendas.Domain/Evento.cs @ 74:bc46e7426c80

Refactoring de acciones según la definición del diagrama de estados en assembla (https://www.assembla.com/spaces/altnet-hispano/wiki/Estados_de_un_evento)
author nelopauselli
date Mon, 23 May 2011 20:13:37 -0300
parents 76567a0d1e44
children 96d7609f2e08
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Mon May 23 19:54:05 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Mon May 23 20:13:37 2011 -0300
@@ -5,32 +5,24 @@
 {
 	public class Evento : Identificable
 	{
-		private readonly IList<Track> _tracks;
-		private IList<string> _enlaces;
-
-		public static Evento Proponer(string titulo, Ponente ponente)
-		{
-			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, string urlInvitacion)
-		{
-			var evento = new Evento { Titulo = titulo };
-			evento.Publicar(ponente, fecha, urlInvitacion);
-
-			return evento;
-		}
-
 		protected Evento()
 		{
-			_enlaces = new List<string>();
 			_tracks = new List<Track>();
 		}
 
+		#region Propiedades del Evento
+
+		private readonly IList<Track> _tracks;
+		private Ponente _ponente;
+
+		/// <summary>
+		/// Título del evento
+		/// </summary>
 		public virtual string Titulo { get; private set; }
+
+		/// <summary>
+		/// Fecha para la que se encuentra agendado el evento
+		/// </summary>
 		public virtual DateTime? Fecha { get; private set; }
 
 		/// <summary>
@@ -48,7 +40,9 @@
 		/// </summary>
 		public virtual short NumeroOrden { get; private set; }
 
-		private Ponente _ponente;
+		/// <summary>
+		/// Ponente o responsable del evento
+		/// </summary>
 		public virtual Ponente Ponente
 		{
 			get { return _ponente; }
@@ -62,11 +56,62 @@
 			}
 		}
 
+		/// <summary>
+		/// Track de cambios que ha sufrido el evento
+		/// </summary>
 		public virtual IEnumerable<Track> Tracks
 		{
 			get { return _tracks; }
 		}
 
+		#endregion
+
+		#region Acciones sobre el evento
+
+		/// <summary>
+		/// Propone un evento
+		/// </summary>
+		/// <param name="titulo">Título del evento propuesto</param>
+		/// <param name="ponente">Ponente para evento propuesto</param>
+		/// <returns></returns>
+		public static Evento Proponer(string titulo, Ponente ponente)
+		{
+			var evento = new Evento { Titulo = titulo, Ponente = ponente };
+			evento.AddTracks(new Track(Accion.Proponer));
+
+			return evento;
+		}
+
+		/// <summary>
+		/// Agenda un evento que no estaba propuesto
+		/// </summary>
+		/// <param name="titulo">Título del evento a agendar</param>
+		/// <param name="ponente">Ponente para el evento</param>
+		/// <param name="fecha">Fecha de realización del evento</param>
+		/// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
+		/// <returns></returns>
+		public static Evento Agendar(string titulo, Ponente ponente, DateTime fecha, string urlInvitacion)
+		{
+			var evento = new Evento { Titulo = titulo };
+			evento.Agendar(ponente, fecha, urlInvitacion);
+
+			return evento;
+		}
+
+		/// <summary>
+		/// Agenda el evento actual
+		/// </summary>
+		/// <param name="ponente">Ponente para el evento</param>
+		/// <param name="fecha">Fecha de realización del evento</param>
+		/// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
+		public virtual void Agendar(Ponente ponente, DateTime? fecha, string urlInvitacion)
+		{
+			Ponente = ponente;
+			Fecha = fecha;
+			UrlInvitacion = urlInvitacion;
+			AddTracks(new Track(Accion.Agendar));
+		}
+
 		public virtual void Actualizar(Ponente ponente, DateTime? fecha)
 		{
 			Ponente = ponente;
@@ -81,13 +126,7 @@
 			AddTracks(new Track(Accion.CambiarTitulo));
 		}
 
-		public virtual void Publicar(Ponente ponente, DateTime? fecha, string urlInvitacion)
-		{
-			Ponente = ponente;
-			Fecha = fecha;
-			UrlInvitacion = urlInvitacion;
-			AddTracks(new Track(Accion.Publicar));
-		}
+		#endregion
 
 		private void AddTracks(Track track)
 		{