diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 237:51faeabfb9d9

Todos los tests en verde quitando al ponente principal
author nelopauselli
date Tue, 04 Oct 2011 21:30:55 -0300
parents c61954d24c8c
children 59f8fa2f835e
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Oct 04 20:42:46 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Oct 04 21:30:55 2011 -0300
@@ -50,7 +50,7 @@
         {
 			Evento evento = GetEvento(eventoId);
 
-			if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any()))
+			if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id=>id!=Guid.Empty)))
 				return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
 
             if (evento.Titulo != titulo)
@@ -61,7 +61,7 @@
             else if (evento.FechaInicio != fechaInicio || evento.UrlInvitacion != urlInvitacion || evento.FechaTermino != fechaTermino)
                 evento.Actualizar(fechaInicio, fechaTermino, urlInvitacion);
 
-			var r = ActualizarPonentes(evento, ponentesId);
+			var r = ActualizarPonentes(evento, ponentesId, Accion.Modificar);
 			if (!r.Succeful) return r;
 
             Notify(evento);
@@ -83,7 +83,7 @@
 
             var evento = Evento.Proponer(titulo, urlInvitacion, tipo);
 
-			var r = ActualizarPonentes(evento, ponentesId);
+			var r = ActualizarPonentes(evento, ponentesId, null);
 			if (!r.Succeful) return r;
 
             Notify(evento);
@@ -101,7 +101,7 @@
                 return new EventoResultado(false, "Debe indicar la fecha", null);
             if (!fechaTermino.HasValue)
                 return new EventoResultado(false, "Debe indicar la hora y duraciĆ³n", null);
-			if (tipo==TipoEvento.Van && (ponentesId == null || !ponentesId.Any()))
+			if (tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id => id != Guid.Empty)))
 				return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
 
     		var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo);
@@ -126,7 +126,7 @@
             else
                 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion);
 
-    		var r = ActualizarPonentes(evento, ponentesId);
+    		var r = ActualizarPonentes(evento, ponentesId, null);
 			if (!r.Succeful) return r;
 
     		Notify(evento);
@@ -138,7 +138,7 @@
 			return new EventoResultado(true, "Evento creado", warnings);
 		}
 
-    	private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId)
+    	private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId, Accion? action)
     	{
     		var ponentes = new List<Persona>();
     		if (ponentesId != null)
@@ -151,7 +151,7 @@
     					                           null);
     				ponentes.Add(colaborador);
     			}
-    			evento.ActualizarOtrosPonentes(ponentes);
+    			evento.ActualizarPonentes(ponentes, action);
     		}
     		return new EventoResultado(true, "Ponentes actualizados", null);
     	}