diff Agendas/trunk/src/Agendas.Domain/Evento.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 72a96459f910
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs	Tue Oct 04 20:42:46 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs	Tue Oct 04 21:30:55 2011 -0300
@@ -98,17 +98,28 @@
 			get { return _ponentes; }
 		}
 
-		public virtual void ActualizarOtrosPonentes(IEnumerable<Persona> otrosPonentes)
+		public virtual void ActualizarPonentes(IEnumerable<Persona> ponentes, Accion? action)
 		{
-			foreach (var otro in otrosPonentes)
+			bool modificados = false;
+			
+			foreach (var ponente in ponentes)
 			{
-				if (!_ponentes.Contains(otro))
-					_ponentes.Add(otro);
+				if (!_ponentes.Contains(ponente))
+				{
+					_ponentes.Add(ponente);
+					modificados = true;
+				}
 			}
-			var sobran = _ponentes.Where(c => !otrosPonentes.Contains(c)).ToList();
+			var sobran = _ponentes.Where(c => !ponentes.Contains(c)).ToList();
 
 			foreach (var sobra in sobran)
+			{
 				_ponentes.Remove(sobra);
+				modificados = true;
+			}
+
+			if (modificados && action.HasValue)
+				AddTrack(new Track(this, action.Value));
 		}
 
 		//protected internal virtual void AddPatrocinador(Patrocinador patrocinador)