Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs @ 140:3639803112c6
Refactoring de la relación entre Evento y Estado
author | nelopauselli |
---|---|
date | Fri, 29 Jul 2011 16:30:53 -0300 |
parents | 6f1041301797 |
children | 3ca9fb66d397 |
line wrap: on
line source
using System; using AltNetHispano.Agendas.Domain.Exceptions; namespace AltNetHispano.Agendas.Domain { public class EventoPropuestoState : EventoState { protected EventoPropuestoState() { } private static readonly EventoState _instance = new EventoPropuestoState(); public static EventoState GetInstance() { return _instance; } public override void Promover(Evento evento, Accion accion) { switch (accion) { case Accion.Agendar: evento.Estado = EventoAgendadoState.GetInstance(); evento.AddTrack(new Track(evento, Accion.Agendar)); break; case Accion.Descartar: evento.Estado = EventoDescartadoState.GetInstance(); evento.AddTrack(new Track(evento, Accion.Descartar)); break; default: throw new AccionNoSoportadaException(this.GetType(), accion); } } public override string Descripcion { get { return "Propuesto"; } } public override bool PuedePromover(Accion accion) { return accion == Accion.Agendar || accion == Accion.Descartar; } } }