diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 234:cc71f96ac134

Combinar
author juanjose.montesdeocaarbos
date Tue, 04 Oct 2011 20:36:27 -0300
parents e5959f3405e0
children c61954d24c8c
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Oct 04 20:34:46 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Tue Oct 04 20:36:27 2011 -0300
@@ -48,9 +48,19 @@
 
         public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion)
         {
-            Evento evento = GetEvento(eventoId);
-            Persona persona = _personaRepository.Get(ponenteId);
+			Evento evento = GetEvento(eventoId);
+
+			if (evento.Tipo == TipoEvento.Van && ponenteId == Guid.Empty)
+				return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
 
+			Persona persona = null;
+			if (ponenteId != Guid.Empty)
+			{
+				persona = _personaRepository.Get(ponenteId);
+				if (persona == null)
+					return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null);
+			} 
+			
             if (evento.Titulo != titulo)
                 evento.CambiarTitulo(titulo);
 
@@ -92,23 +102,24 @@
 			return new EventoResultado(true,"Evento propuesto", warnings);
 		}
 
-		public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo)
-		{
-			return Agendar(titulo, ponenteId, fechaInicio, fechaTermino, urlInvitacion, tipo, null);
-		}
-
-    	public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo, IEnumerable<Guid> colaboradoresId)
+    	public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo, IEnumerable<Guid> colaboradoresId = null)
         {
             if (!fechaInicio.HasValue)
                 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 && ponenteId == Guid.Empty)
+				return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
 
-            Persona persona = _personaRepository.Get(ponenteId);
-            if (persona == null)
-                return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null);
+    		Persona persona = null;
+			if (ponenteId != Guid.Empty)
+    		{
+    			persona = _personaRepository.Get(ponenteId);
+    			if (persona == null)
+    				return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null);
+    		}
 
-		    var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo);
+    		var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo);
             if (existeOtroEvento != null)
                 return new EventoResultado(false,
                                            string.Format(