Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/EventoPropuestoState.cs @ 186:71737419a839
Ticket 143: Test de unidad, y algo de configuración para acortar URL con servicio de Google.
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 09 Aug 2011 08:43:25 -0300 |
parents | 3ca9fb66d397 |
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:
133
diff
changeset
|
6 public class EventoPropuestoState : EventoState |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
7 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
8 protected EventoPropuestoState() |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
9 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
10 } |
104 | 11 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
12 private static readonly EventoState _instance = new EventoPropuestoState(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
13 public static EventoState GetInstance() |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
14 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
15 return _instance; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
16 } |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
17 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
18 public override void Promover(Evento evento, Accion accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
19 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
20 switch (accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
21 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
22 case Accion.Agendar: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
23 evento.Estado = EventoAgendadoState.GetInstance(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
24 evento.AddTrack(new Track(evento, Accion.Agendar)); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
25 break; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
26 case Accion.Descartar: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
27 evento.Estado = EventoDescartadoState.GetInstance(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
28 evento.AddTrack(new Track(evento, Accion.Descartar)); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
29 break; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
30 default: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
31 throw new AccionNoSoportadaException(this.GetType(), accion); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
32 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
33 } |
103 | 34 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
35 public override string Descripcion |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
36 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
37 get { return "Propuesto"; } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
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:
133
diff
changeset
|
40 public override bool PuedePromover(Accion accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
41 { |
146
3ca9fb66d397
Habilitando la modificación de eventos propuestos o agendados
Nelo@Guinea.neluz.int
parents:
140
diff
changeset
|
42 return accion == Accion.Agendar || accion == Accion.Descartar || accion==Accion.Modificar; |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
43 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
133
diff
changeset
|
44 } |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
45 } |