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

Refactoring del track de cambios de un evento
author nelopauselli
date Mon, 16 May 2011 20:23:31 -0300
parents 3059a5f8930f
children 4a4e12e32256
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Mon May 16 20:15:05 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Mon May 16 20:23:31 2011 -0300
@@ -64,8 +64,7 @@
 		public Resultado Proponer(string titulo, string ponenteNombre)
 		{
 			Ponente ponente = GetPonente(ponenteNombre);
-			var evento = new Evento(titulo);
-			evento.Actualizar(ponente);
+			var evento = Evento.Proponer(titulo, ponente);
 
 			if (string.IsNullOrWhiteSpace(evento.Titulo))
 				return new Resultado(false);
@@ -78,15 +77,18 @@
 
 		public Resultado Publicar(string titulo, string ponenteNombre, DateTime? fecha)
 		{
+			if (!fecha.HasValue)
+				return new Resultado(false);
+			if (string.IsNullOrWhiteSpace(ponenteNombre))
+				return new Resultado(false);
+
 			Ponente ponente = GetPonente(ponenteNombre);
 
-			Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento(titulo);
-			evento.Publicar(ponente, fecha);
-
-			if (!evento.Fecha.HasValue)
-				return new Resultado(false);
-			if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre))
-				return new Resultado(false);
+			Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo);
+			if (evento == null)
+				evento = Evento.Publicar(titulo, ponente, fecha.Value);
+			else
+				evento.Publicar(ponente, fecha);
 
 			if (_publicador != null)
 				_publicador.Publicar(evento);