annotate 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
rev   line source
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
1 using AltNetHispano.Agendas.Domain.Exceptions;
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff changeset
2
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff changeset
3 namespace AltNetHispano.Agendas.Domain
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff changeset
4 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
5 public class EventoAgendadoState : EventoState
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
6 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
7 protected EventoAgendadoState()
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
8 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
9 }
104
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
10
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
11 private static readonly EventoState _instance = new EventoAgendadoState();
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
12 public static EventoState GetInstance()
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
13 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
14 return _instance;
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
15 }
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff changeset
16
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
17 public override void Promover(Evento evento, Accion accion)
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
18 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
19 switch (accion)
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
20 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
21 case Accion.Confirmar:
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
22 evento.Estado=EventoConfirmadoState.GetInstance();
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
23 evento.AddTrack(new Track(evento, Accion.Confirmar));
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
24 break;
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
25 case Accion.Cancelar:
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
26 evento.Estado = EventoCanceladoState.GetInstance();
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
27 evento.AddTrack(new Track(evento, Accion.Cancelar));
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
28 break;
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
29 default:
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
30 throw new AccionNoSoportadaException(this.GetType(), accion);
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
31 }
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
32 }
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
33
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
34 public override string Descripcion
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
35 {
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
36 get { return "Agendado"; }
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
37 }
116
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 104
diff changeset
38
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
39 public override bool PuedePromover(Accion accion)
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
40 {
146
3ca9fb66d397 Habilitando la modificación de eventos propuestos o agendados
Nelo@Guinea.neluz.int
parents: 140
diff changeset
41 return accion == Accion.Confirmar || accion == Accion.Cancelar || accion==Accion.Modificar;
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
42 }
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
43 }
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff changeset
44 }