view Agendas/trunk/src/Agendas.Domain/EventoNullState.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 source

using AltNetHispano.Agendas.Domain.Exceptions;

namespace AltNetHispano.Agendas.Domain
{
  public class EventoNullState : EventoState
  {
    private readonly Evento _evento;

    public EventoNullState(Evento evento)
    {
      _evento = evento;
    }

    public override void Promover(Accion accion)
    {
      switch (accion)
      {
        case Accion.Proponer:
          _evento.Estado = new EventoPropuestoState(_evento);
          break;
        case Accion.Agendar:
          _evento.Estado = new EventoAgendadoState(_evento);
          break;
        default:
          throw new AccionNoSoportadaException(this.GetType(), accion);
      }
    }
  }
}