diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 14:ed6d842abf42

Modificar evento
author nelo@MTEySS.neluz.int
date Sun, 13 Mar 2011 20:49:15 -0300
parents 05996fa19e04
children 08b9e96132a5
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Sun Mar 13 20:24:20 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Sun Mar 13 20:49:15 2011 -0300
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using AltNetHispano.Agendas.Domain.Exceptions;
 
 namespace AltNetHispano.Agendas.Domain
@@ -36,6 +37,9 @@
             if (string.IsNullOrWhiteSpace(evento.Ponente))
                 throw new ValidationException();
 
+			//TODO: persistir el evento!
+			if (evento.Id==Guid.Empty) evento.Id = Guid.NewGuid();
+
             _eventosPublicados.Add(evento);
 		}
 
@@ -68,9 +72,28 @@
             return seguridad == null || seguridad.GetPrincipal() == null || seguridad.GetPrincipal().Identity == null
                 || string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name);
         }
-    }
+
+		public void ModificarEvento(Guid id, string titulo, string ponente, DateTime? fecha)
+		{
+			var evento = _eventosPublicados.SingleOrDefault(e => e.Id == id);
+			if (evento == null)
+				throw new EventoNotFoundException();
+			evento.Titulo = titulo;
+			evento.Ponente = ponente;
+			evento.Fecha = fecha;
+		}
 
-    public class UsuarioNoAutenticadoException : Exception
+		public Evento GetEventoPublicado(Guid id)
+		{
+			return _eventosPublicados.SingleOrDefault(e => e.Id == id);
+		}
+	}
+
+	public class EventoNotFoundException : Exception
+	{
+	}
+
+	public class UsuarioNoAutenticadoException : Exception
     {
     }
 }
\ No newline at end of file