diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 225:f23ee59ef1bd

Otros ponentes
author nelopauselli
date Mon, 26 Sep 2011 08:47:01 -0300
parents 8a8c35302b81
children e5959f3405e0
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Sun Sep 25 01:40:18 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Mon Sep 26 08:47:01 2011 -0300
@@ -93,6 +93,11 @@
 		}
 
 		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)
         {
             if (!fechaInicio.HasValue)
                 return new EventoResultado(false, "Debe indicar la fecha", null);
@@ -125,7 +130,21 @@
             else
                 evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion);
 
-			Notify(evento);
+    		var colaboradores = new List<Persona>();
+			if (colaboradoresId!=null)
+			{
+				foreach (var colaboradorId in colaboradoresId)
+				{
+					var colaborador = _personaRepository.Get(colaboradorId);
+					if (colaborador == null)
+						return new EventoResultado(false, string.Format("No se encontrĂ³ el colaborador indicado ({0})", colaboradorId),
+						                           null);
+					colaboradores.Add(colaborador);
+				}
+				evento.ActualizarOtrosPonentes(colaboradores);
+			}
+
+    		Notify(evento);
 
             _eventosRepository.Save(evento);