diff Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs @ 101:9bfdd5bf3ad2

Manejo de estados de los Eventos mediante state pattern (primer version)
author jorge.rowies
date Sun, 05 Jun 2011 11:10:32 -0300
parents
children 23325dddddcc
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs	Sun Jun 05 11:10:32 2011 -0300
@@ -0,0 +1,27 @@
+using AltNetHispano.Agendas.Domain.Exceptions;
+
+namespace AltNetHispano.Agendas.Domain
+{
+  public class EventoPropuestoState : EventoState
+  {
+    private readonly Evento _evento;
+
+    public EventoPropuestoState(Evento evento)
+    {
+      _evento = evento;
+      _evento.AddTrack(new Track(_evento, Accion.Proponer));
+    }
+
+    public override void Promover(Accion accion)
+    {
+      switch (accion)
+      {
+        case Accion.Agendar:
+          _evento.Estado = new EventoAgendadoState(_evento);
+          break;
+        default:
+          throw new AccionNoSoportadaException(this.GetType(), accion);
+      }
+    }
+  }
+}
\ No newline at end of file