annotate Agendas/trunk/src/Agendas.Domain/EventoNullState.cs @ 209:a36a76bd6ec3

Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
author alabra
date Wed, 24 Aug 2011 19:27:30 -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
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 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
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
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.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
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
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 }