Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/EventoNullState.cs @ 191:03c237cd5cc4
Test que verifica el acceso por shorten url
author | nelopauselli |
---|---|
date | Tue, 09 Aug 2011 09:52:02 -0300 |
parents | 3639803112c6 |
children |
rev | line source |
---|---|
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
104
diff
changeset
|
1 using System; |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
104
diff
changeset
|
2 using AltNetHispano.Agendas.Domain.Exceptions; |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
3 |
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
4 namespace AltNetHispano.Agendas.Domain |
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
5 { |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
6 public class EventoNullState : EventoState |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
7 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
8 protected EventoNullState() |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
9 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
10 } |
104 | 11 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
12 private static readonly EventoState _instance = new EventoNullState(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
13 public static EventoState GetInstance() |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
14 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
15 return _instance; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
16 } |
104 | 17 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
18 public override void Promover(Evento evento, Accion accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
19 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
20 switch (accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
21 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
22 case Accion.Proponer: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
23 evento.Estado = EventoPropuestoState.GetInstance(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
24 evento.AddTrack(new Track(evento, Accion.Proponer)); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
25 break; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
26 case Accion.Agendar: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
27 evento.Estado = EventoAgendadoState.GetInstance(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
28 evento.AddTrack(new Track(evento, Accion.Agendar)); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
29 break; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
30 default: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
31 throw new AccionNoSoportadaException(this.GetType(), accion); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
32 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
33 } |
103 | 34 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
35 public override string Descripcion |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
36 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
37 get { return "NullState"; } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
38 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
104
diff
changeset
|
39 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
40 public override bool PuedePromover(Accion accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
41 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
42 return accion == Accion.Proponer || accion == Accion.Agendar; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
43 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
44 } |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
45 } |