annotate Agendas/trunk/src/Agendas.Domain/EventoConfirmadoState.cs @ 282:bc8dfbde0523

#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author juanjose.montesdeocaarbos
date Mon, 26 Dec 2011 14:21:44 -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 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
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
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
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
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 }