view Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs @ 148:c99636fbdc5f

Ticket 155: Agregar Nro de Orden, Tipo y Duración real en la pantalla de Histórico, similar a como es la página actual en altnethispano.org. Pendiente: Falta que tome la duración cargada.
author juanjose.montesdeocaarbos
date Tue, 02 Aug 2011 23:05:50 -0300
parents 3ca9fb66d397
children
line wrap: on
line source

using AltNetHispano.Agendas.Domain.Exceptions;

namespace AltNetHispano.Agendas.Domain
{
	public class EventoAgendadoState : EventoState
	{
		protected EventoAgendadoState()
		{
		}

		private static readonly EventoState _instance = new EventoAgendadoState();
		public static EventoState GetInstance()
		{
			return _instance;
		}

		public override void Promover(Evento evento, Accion accion)
		{
			switch (accion)
			{
				case Accion.Confirmar:
					evento.Estado=EventoConfirmadoState.GetInstance();
					evento.AddTrack(new Track(evento, Accion.Confirmar));
					break;
				case Accion.Cancelar:
					evento.Estado = EventoCanceladoState.GetInstance();
					evento.AddTrack(new Track(evento, Accion.Cancelar));
					break;
				default:
					throw new AccionNoSoportadaException(this.GetType(), accion);
			}
		}

		public override string Descripcion
		{
			get { return "Agendado"; }
		}

		public override bool PuedePromover(Accion accion)
		{
			return accion == Accion.Confirmar || accion == Accion.Cancelar || accion==Accion.Modificar;
		}
	}
}