Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/EventoAgendadoState.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 | 3ca9fb66d397 |
comparison
equal
deleted
inserted
replaced
139:18e5a78186e4 | 140:3639803112c6 |
---|---|
1 using System; | 1 using AltNetHispano.Agendas.Domain.Exceptions; |
2 using AltNetHispano.Agendas.Domain.Exceptions; | |
3 | 2 |
4 namespace AltNetHispano.Agendas.Domain | 3 namespace AltNetHispano.Agendas.Domain |
5 { | 4 { |
6 public class EventoAgendadoState : EventoState | 5 public class EventoAgendadoState : EventoState |
7 { | 6 { |
8 private EventoAgendadoState() | 7 protected EventoAgendadoState() |
9 { | 8 { |
10 } | 9 } |
11 | 10 |
12 private static readonly EventoState _instance = new EventoAgendadoState(); | 11 private static readonly EventoState _instance = new EventoAgendadoState(); |
13 public static EventoState GetInstance() | 12 public static EventoState GetInstance() |
14 { | 13 { |
15 return _instance; | 14 return _instance; |
16 } | 15 } |
17 | 16 |
18 private const string Descripcion = "Agendado"; | 17 public override void Promover(Evento evento, Accion accion) |
18 { | |
19 switch (accion) | |
20 { | |
21 case Accion.Confirmar: | |
22 evento.Estado=EventoConfirmadoState.GetInstance(); | |
23 evento.AddTrack(new Track(evento, Accion.Confirmar)); | |
24 break; | |
25 case Accion.Cancelar: | |
26 evento.Estado = EventoCanceladoState.GetInstance(); | |
27 evento.AddTrack(new Track(evento, Accion.Cancelar)); | |
28 break; | |
29 default: | |
30 throw new AccionNoSoportadaException(this.GetType(), accion); | |
31 } | |
32 } | |
19 | 33 |
20 public override void Promover(Evento evento, Accion accion) | 34 public override string Descripcion |
21 { | 35 { |
22 switch (accion) | 36 get { return "Agendado"; } |
23 { | 37 } |
24 case Accion.Confirmar: | |
25 evento.SetEstado(EventoConfirmadoState.GetInstance()); | |
26 evento.AddTrack(new Track(evento, Accion.Confirmar)); | |
27 break; | |
28 case Accion.Cancelar: | |
29 evento.SetEstado(EventoCanceladoState.GetInstance()); | |
30 evento.AddTrack(new Track(evento, Accion.Cancelar)); | |
31 break; | |
32 default: | |
33 throw new AccionNoSoportadaException(this.GetType(), accion); | |
34 } | |
35 } | |
36 | 38 |
37 public override string GetDescripcion() | 39 public override bool PuedePromover(Accion accion) |
38 { | 40 { |
39 return Descripcion; | 41 return accion == Accion.Confirmar || accion == Accion.Cancelar; |
40 } | 42 } |
41 | 43 } |
42 public override bool PuedePromover(Accion accion) | |
43 { | |
44 return accion == Accion.Confirmar || accion == Accion.Cancelar; | |
45 } | |
46 } | |
47 } | 44 } |