diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 39:e548379cc314

track de cambios en evento
author nelo@MTEySS.neluz.int
date Fri, 18 Mar 2011 00:10:21 -0300
parents 3c5657d99727
children 07c47ea2ac00
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Thu Mar 17 23:16:35 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Fri Mar 18 00:10:21 2011 -0300
@@ -38,6 +38,9 @@
 
         	if (_publicador != null)
         		_publicador.Publicar(evento);
+
+            evento.AddTracks(new Track(Accion.Publicar));
+
         	_eventosRepository.Save(evento);
         	_ponenteRepository.Save(ponente);
         }
@@ -88,11 +91,19 @@
 			var ponente = GetPonente(ponenteNombre);
 
             if (evento.Titulo != titulo)
-			    evento.CambiarTitulo(titulo);
+            {
+                evento.CambiarTitulo(titulo);
+                evento.AddTracks(new Track(Accion.CambiarTitulo));
+            }
 
-		    evento.Actualizar(ponente, fecha);
+		    if (evento.Fecha != fecha || evento.Ponente != ponente)
+            {
+                evento.Actualizar(ponente, fecha);
+                evento.AddTracks(new Track(Accion.Modificar));
+            }
 
-			if (_publicador != null)
+
+		    if (_publicador != null)
 				_publicador.Publicar(evento);
 		}
 
@@ -109,13 +120,25 @@
 
 		private Ponente GetPonente(string nombre)
 		{
-		    return _ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre);
+		    var ponente=_ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre);
+            _ponenteRepository.Save(ponente);
+		    return ponente;
 		}
 
 		public void ModificarPropuesta(Guid id, string titulo, string ponenteNombre)
 		{
 			ModificarEvento(id, titulo, ponenteNombre, null);
 		}
+
+	    public void RealizarEvento(Guid eventoId, string sintesis)
+	    {
+	        var evento = _eventosRepository.Get(eventoId);
+            if (evento != null)
+            {
+                evento.Realizado(sintesis);
+                evento.AddTracks(new Track(Accion.Realizar));
+            }
+	    }
 	}
 
 	public class EventoNotFoundException : Exception