Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.cs @ 262:b87a4875b2b6
ControllerTests: Refactoring.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 22 Oct 2011 14:08:30 -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 | 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 | 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 } |