view Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs @ 298:9bc60d166c8a

Se corrigieron los tests por el cambio de Patrocinador, para que no persista el logo en disco. Se comentó el código de PatrocinadorApiController, que no se utiliza.
author juanjose.montesdeocaarbos
date Sun, 19 Feb 2012 16:00:38 -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;
		}
	}
}