Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/EventoCanceladoState.cs @ 140:3639803112c6
Refactoring de la relación entre Evento y Estado
author | nelopauselli |
---|---|
date | Fri, 29 Jul 2011 16:30:53 -0300 |
parents | 6f1041301797 |
children |
comparison
equal
deleted
inserted
replaced
139:18e5a78186e4 | 140:3639803112c6 |
---|---|
1 using AltNetHispano.Agendas.Domain.Exceptions; | 1 using System; |
2 using AltNetHispano.Agendas.Domain.Exceptions; | |
2 | 3 |
3 namespace AltNetHispano.Agendas.Domain | 4 namespace AltNetHispano.Agendas.Domain |
4 { | 5 { |
5 public class EventoCanceladoState : EventoState | 6 public class EventoCanceladoState : EventoState |
6 { | 7 { |
7 private EventoCanceladoState() | 8 protected EventoCanceladoState() |
8 { | 9 { |
9 } | 10 } |
10 | 11 |
11 private static readonly EventoState _instance = new EventoCanceladoState(); | 12 private static readonly EventoState _instance = new EventoCanceladoState(); |
12 | 13 |
13 public static EventoState GetInstance() | 14 public static EventoState GetInstance() |
14 { | 15 { |
15 return _instance; | 16 return _instance; |
16 } | 17 } |
17 | 18 |
18 private const string Descripcion = "Cancelado"; | 19 public override void Promover(Evento evento, Accion accion) |
20 { | |
21 switch (accion) | |
22 { | |
23 case Accion.Descartar: | |
24 evento.Estado = EventoDescartadoState.GetInstance(); | |
25 evento.AddTrack(new Track(evento, Accion.Descartar)); | |
26 break; | |
27 case Accion.ReAgendar: | |
28 evento.Estado = EventoAgendadoState.GetInstance(); | |
29 evento.AddTrack(new Track(evento, Accion.ReAgendar)); | |
30 break; | |
31 case Accion.ReProponer: | |
32 evento.Estado = EventoPropuestoState.GetInstance(); | |
33 evento.AddTrack(new Track(evento, Accion.ReProponer)); | |
34 break; | |
35 default: | |
36 throw new AccionNoSoportadaException(this.GetType(), accion); | |
37 } | |
38 } | |
19 | 39 |
20 public override void Promover(Evento evento, Accion accion) | 40 public override string Descripcion |
21 { | 41 { |
22 switch (accion) | 42 get { return "Cancelado"; } |
23 { | 43 } |
24 case Accion.Descartar: | |
25 evento.SetEstado(EventoDescartadoState.GetInstance()); | |
26 evento.AddTrack(new Track(evento, Accion.Descartar)); | |
27 break; | |
28 case Accion.ReAgendar: | |
29 evento.SetEstado(EventoAgendadoState.GetInstance()); | |
30 evento.AddTrack(new Track(evento, Accion.ReAgendar)); | |
31 break; | |
32 case Accion.ReProponer: | |
33 evento.SetEstado(EventoPropuestoState.GetInstance()); | |
34 evento.AddTrack(new Track(evento, Accion.ReProponer)); | |
35 break; | |
36 default: | |
37 throw new AccionNoSoportadaException(this.GetType(), accion); | |
38 } | |
39 } | |
40 | 44 |
41 public override string GetDescripcion() | 45 public override bool PuedePromover(Accion accion) |
42 { | 46 { |
43 return Descripcion; | 47 return accion == Accion.Descartar || accion == Accion.ReAgendar || accion == Accion.ReProponer; |
44 } | 48 } |
45 | 49 } |
46 public override bool PuedePromover(Accion accion) | |
47 { | |
48 return accion == Accion.Descartar || accion == Accion.ReAgendar || accion == Accion.ReProponer; | |
49 } | |
50 } | |
51 } | 50 } |