Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Evento.cs @ 104:c5034884c7d7
refactor para que los estados sean singletons
author | jorge.rowies |
---|---|
date | Sun, 05 Jun 2011 13:22:36 -0300 |
parents | 23325dddddcc |
children | 1d820f17fc75 |
comparison
equal
deleted
inserted
replaced
103:23325dddddcc | 104:c5034884c7d7 |
---|---|
1 using System; | 1 using System; |
2 using System.Collections.Generic; | 2 using System.Collections.Generic; |
3 using AltNetHispano.Agendas.Domain.Exceptions; | |
3 | 4 |
4 namespace AltNetHispano.Agendas.Domain | 5 namespace AltNetHispano.Agendas.Domain |
5 { | 6 { |
6 public class Evento : Identificable | 7 public class Evento : Identificable |
7 { | 8 { |
67 } | 68 } |
68 set | 69 set |
69 { | 70 { |
70 if (value != Estado) | 71 if (value != Estado) |
71 { | 72 { |
72 switch (value) | 73 if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) |
73 { | 74 _eventoState = EventoPropuestoState.GetInstance(); |
74 case EventoPropuestoState.Descripcion: | 75 else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) |
75 { | 76 _eventoState = EventoAgendadoState.GetInstance(); |
76 _eventoState = new EventoPropuestoState(); | 77 else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) |
77 break; | 78 _eventoState = EventoConfirmadoState.GetInstance(); |
78 } | 79 else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) |
79 case EventoAgendadoState.Descripcion: | 80 _eventoState = EventoPublicadoState.GetInstance(); |
80 { | 81 else |
81 _eventoState = new EventoAgendadoState(); | 82 throw new InvalidStateException(value); |
82 break; | |
83 } | |
84 case EventoConfirmadoState.Descripcion: | |
85 { | |
86 _eventoState = new EventoConfirmadoState(); | |
87 break; | |
88 } | |
89 case EventoPublicadoState.Descripcion: | |
90 { | |
91 _eventoState = new EventoPublicadoState(); | |
92 break; | |
93 } | |
94 } | |
95 } | 83 } |
96 } | 84 } |
97 } | 85 } |
98 | 86 |
99 private EventoState _eventoState; | 87 private EventoState _eventoState; |
102 /// Obtiene una instancia de la clase que representa el estado del evento | 90 /// Obtiene una instancia de la clase que representa el estado del evento |
103 /// </summary> | 91 /// </summary> |
104 public virtual EventoState GetEstado() | 92 public virtual EventoState GetEstado() |
105 { | 93 { |
106 if (_eventoState == null) | 94 if (_eventoState == null) |
107 SetEstado(new EventoNullState()); | 95 SetEstado(EventoNullState.GetInstance()); |
108 | 96 |
109 return _eventoState; | 97 return _eventoState; |
110 } | 98 } |
111 | 99 |
112 /// <summary> | 100 /// <summary> |