Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/EventoConfirmadoState.cs @ 140:3639803112c6
Refactoring de la relación entre Evento y Estado
author | nelopauselli |
---|---|
date | Fri, 29 Jul 2011 16:30:53 -0300 |
parents | 53bcd338542b |
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 EventoConfirmadoState : 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 EventoConfirmadoState() |
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 EventoConfirmadoState(); |
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 } |
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:
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.Publicar: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
23 evento.Estado = EventoPublicadoState.GetInstance(); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
24 evento.AddTrack(new Track(evento, Accion.Publicar)); |
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 default: |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
27 throw new AccionNoSoportadaException(this.GetType(), accion); |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
28 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
29 } |
103 | 30 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
31 public override string Descripcion |
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 get { return "Confirmado"; } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
34 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
104
diff
changeset
|
35 |
140
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
36 public override bool PuedePromover(Accion accion) |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
37 { |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
38 return accion == Accion.Publicar; |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
39 } |
3639803112c6
Refactoring de la relación entre Evento y Estado
nelopauselli
parents:
116
diff
changeset
|
40 } |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
diff
changeset
|
41 } |