Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Evento.cs @ 139:18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
author | nelopauselli |
---|---|
date | Thu, 28 Jul 2011 10:16:09 -0300 |
parents | 62791999ad01 |
children | 3639803112c6 |
comparison
equal
deleted
inserted
replaced
138:62791999ad01 | 139:18e5a78186e4 |
---|---|
8 public class Evento : Identificable | 8 public class Evento : Identificable |
9 { | 9 { |
10 protected Evento() | 10 protected Evento() |
11 { | 11 { |
12 _tracks = new List<Track>(); | 12 _tracks = new List<Track>(); |
13 _patrocinadores=new List<Patrocinador>(); | 13 _patrocinadores = new List<Patrocinador>(); |
14 } | 14 } |
15 | 15 |
16 #region Propiedades del Evento | 16 #region Propiedades del Evento |
17 | 17 |
18 private readonly IList<Track> _tracks; | 18 private readonly IList<Track> _tracks; |
54 public virtual IEnumerable<Track> Tracks | 54 public virtual IEnumerable<Track> Tracks |
55 { | 55 { |
56 get { return _tracks; } | 56 get { return _tracks; } |
57 } | 57 } |
58 | 58 |
59 /// <summary> | 59 /// <summary> |
60 /// Estado del evento en formato string (para persistencia a DB) | 60 /// Estado del evento en formato string (para persistencia a DB) |
61 /// </summary> | 61 /// </summary> |
62 public virtual string Estado | 62 public virtual string Estado |
63 { | 63 { |
64 get | 64 get |
65 { | 65 { |
66 if (_eventoState != null) | 66 if (_eventoState != null) |
67 return _eventoState.GetDescripcion(); | 67 return _eventoState.GetDescripcion(); |
68 | 68 |
69 return string.Empty; | 69 return string.Empty; |
70 } | 70 } |
71 set | 71 set |
72 { | 72 { |
73 if (value != Estado) | 73 if (value != Estado) |
74 { | 74 { |
75 if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) | 75 if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) |
76 _eventoState = EventoPropuestoState.GetInstance(); | 76 _eventoState = EventoPropuestoState.GetInstance(); |
77 else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) | 77 else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) |
78 _eventoState = EventoAgendadoState.GetInstance(); | 78 _eventoState = EventoAgendadoState.GetInstance(); |
79 else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) | 79 else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) |
80 _eventoState = EventoConfirmadoState.GetInstance(); | 80 _eventoState = EventoConfirmadoState.GetInstance(); |
81 else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) | 81 else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) |
82 _eventoState = EventoPublicadoState.GetInstance(); | 82 _eventoState = EventoPublicadoState.GetInstance(); |
83 else if (EventoCanceladoState.GetInstance().GetDescripcion().Equals(value)) | 83 else if (EventoCanceladoState.GetInstance().GetDescripcion().Equals(value)) |
84 _eventoState = EventoCanceladoState.GetInstance(); | 84 _eventoState = EventoCanceladoState.GetInstance(); |
85 else if (EventoDescartadoState.GetInstance().GetDescripcion().Equals(value)) | 85 else if (EventoDescartadoState.GetInstance().GetDescripcion().Equals(value)) |
86 _eventoState = EventoDescartadoState.GetInstance(); | 86 _eventoState = EventoDescartadoState.GetInstance(); |
87 else | 87 else |
88 throw new InvalidStateException(value); | 88 throw new InvalidStateException(value); |
89 } | 89 } |
90 } | 90 } |
91 } | 91 } |
92 | 92 |
93 private EventoState _eventoState; | 93 private EventoState _eventoState; |
94 private IList<Patrocinador> _patrocinadores; | 94 private IList<Patrocinador> _patrocinadores; |
95 | 95 |
96 /// <summary> | 96 /// <summary> |
97 /// Obtiene una instancia de la clase que representa el estado del evento | 97 /// Obtiene una instancia de la clase que representa el estado del evento |
98 /// </summary> | 98 /// </summary> |
99 public virtual EventoState GetEstado() | 99 public virtual EventoState GetEstado() |
100 { | 100 { |
101 if (_eventoState == null) | 101 if (_eventoState == null) |
102 SetEstado(EventoNullState.GetInstance()); | 102 SetEstado(EventoNullState.GetInstance()); |
103 | 103 |
104 return _eventoState; | 104 return _eventoState; |
105 } | 105 } |
106 | 106 |
107 /// <summary> | 107 /// <summary> |
108 /// Asigna la instancia de la clase que representa el estado del evento | 108 /// Asigna la instancia de la clase que representa el estado del evento |
109 /// </summary> | 109 /// </summary> |
110 /// <param name="eventoState">Instancia que representa el estado</param> | 110 /// <param name="eventoState">Instancia que representa el estado</param> |
111 public virtual void SetEstado(EventoState eventoState) | 111 public virtual void SetEstado(EventoState eventoState) |
112 { | 112 { |
113 _eventoState = eventoState; | 113 _eventoState = eventoState; |
114 } | 114 } |
115 | 115 |
116 public virtual TipoEvento Tipo { get; private set; } | 116 public virtual TipoEvento Tipo { get; private set; } |
117 | 117 |
118 public IEnumerable<Patrocinador> Patrocinadores | 118 public virtual IEnumerable<Patrocinador> Patrocinadores |
119 { | 119 { |
120 get { | 120 get |
121 { | |
121 return _patrocinadores; | 122 return _patrocinadores; |
122 } | 123 } |
123 } | 124 } |
124 | 125 |
125 internal virtual void AddPatrocinador(Patrocinador patrocinador) | 126 protected internal virtual void AddPatrocinador(Patrocinador patrocinador) |
126 { | 127 { |
127 _patrocinadores.Add(patrocinador); | 128 _patrocinadores.Add(patrocinador); |
128 } | 129 } |
129 | 130 |
130 internal virtual void RemovePatrocinador(Patrocinador patrocinador) | 131 protected internal virtual void RemovePatrocinador(Patrocinador patrocinador) |
131 { | 132 { |
132 _patrocinadores.Remove(patrocinador); | 133 _patrocinadores.Remove(patrocinador); |
133 } | 134 } |
134 | 135 |
135 | 136 |
136 #endregion | 137 #endregion |
137 | 138 |
138 #region Acciones sobre el evento | 139 #region Acciones sobre el evento |
139 | 140 |
140 /// <summary> | 141 /// <summary> |
141 /// Propone un evento | 142 /// Propone un evento |
142 /// </summary> | 143 /// </summary> |
143 /// <param name="titulo">Título del evento propuesto</param> | 144 /// <param name="titulo">Título del evento propuesto</param> |
144 /// <param name="persona">Ponente para evento propuesto</param> | 145 /// <param name="persona">Ponente para evento propuesto</param> |
145 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> | 146 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
146 /// <param name="tipo">Tipo del evento</param> | 147 /// <param name="tipo">Tipo del evento</param> |
147 /// <returns></returns> | 148 /// <returns></returns> |
148 public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo) | 149 public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo) |
149 { | 150 { |
150 var evento = new Evento {Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo}; | 151 var evento = new Evento { Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo }; |
151 evento.GetEstado().Promover(evento, Accion.Proponer); | 152 evento.GetEstado().Promover(evento, Accion.Proponer); |
152 | 153 |
153 return evento; | 154 return evento; |
154 } | 155 } |
155 | 156 |
156 /// <summary> | 157 /// <summary> |
157 /// Agenda un evento que no estaba propuesto | 158 /// Agenda un evento que no estaba propuesto |
158 /// </summary> | 159 /// </summary> |
159 /// <param name="titulo">Título del evento a agendar</param> | 160 /// <param name="titulo">Título del evento a agendar</param> |
160 /// <param name="persona">Ponente para el evento</param> | 161 /// <param name="persona">Ponente para el evento</param> |
161 /// <param name="fecha">Fecha de realización del evento</param> | 162 /// <param name="fecha">Fecha de realización del evento</param> |
162 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> | 163 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
163 /// <param name="tipo">Tipo del evento</param> | 164 /// <param name="tipo">Tipo del evento</param> |
164 /// <returns></returns> | 165 /// <returns></returns> |
165 public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) | 166 public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) |
166 { | 167 { |
167 var evento = new Evento {Titulo = titulo, Tipo = tipo}; | 168 var evento = new Evento { Titulo = titulo, Tipo = tipo }; |
168 evento.Agendar(persona, fecha, urlInvitacion); | 169 evento.Agendar(persona, fecha, urlInvitacion); |
169 | 170 |
170 return evento; | 171 return evento; |
171 } | 172 } |
172 | 173 |
173 /// <summary> | 174 /// <summary> |
174 /// Agenda el evento actual | 175 /// Agenda el evento actual |
175 /// </summary> | 176 /// </summary> |
176 /// <param name="persona">Ponente para el evento</param> | 177 /// <param name="persona">Ponente para el evento</param> |
177 /// <param name="fecha">Fecha de realización del evento</param> | 178 /// <param name="fecha">Fecha de realización del evento</param> |
178 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> | 179 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
179 public virtual void Agendar(Persona persona, DateTime? fecha, string urlInvitacion) | 180 public virtual void Agendar(Persona persona, DateTime? fecha, string urlInvitacion) |
180 { | 181 { |
181 Ponente = persona; | 182 Ponente = persona; |
182 Fecha = fecha; | 183 Fecha = fecha; |
183 UrlInvitacion = urlInvitacion; | 184 UrlInvitacion = urlInvitacion; |
184 this.GetEstado().Promover(this, Accion.Agendar); | 185 this.GetEstado().Promover(this, Accion.Agendar); |
185 } | 186 } |
186 | 187 |
187 public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion) | 188 public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion) |
188 { | 189 { |
189 Ponente = persona; | 190 Ponente = persona; |
191 UrlInvitacion = urlInvitacion; | 192 UrlInvitacion = urlInvitacion; |
192 | 193 |
193 AddTrack(new Track(this, Accion.Modificar)); | 194 AddTrack(new Track(this, Accion.Modificar)); |
194 } | 195 } |
195 | 196 |
196 public virtual void CambiarTitulo(string titulo) | 197 public virtual void CambiarTitulo(string titulo) |
197 { | 198 { |
198 Titulo = titulo; | 199 Titulo = titulo; |
199 AddTrack(new Track(this, Accion.CambiarTitulo)); | 200 AddTrack(new Track(this, Accion.CambiarTitulo)); |
200 } | 201 } |
201 | 202 |
202 public virtual void Confirmar() | 203 public virtual void Confirmar() |
203 { | 204 { |
204 this.GetEstado().Promover(this, Accion.Confirmar); | 205 this.GetEstado().Promover(this, Accion.Confirmar); |
205 } | 206 } |
206 | 207 |
207 public virtual void Publicar(short numeroOrden, string urlWiki) | 208 public virtual void Publicar(short numeroOrden, string urlWiki) |
208 { | 209 { |
209 this.NumeroOrden = numeroOrden; | 210 this.NumeroOrden = numeroOrden; |
210 this.UrlWiki = urlWiki; | 211 this.UrlWiki = urlWiki; |
211 this.GetEstado().Promover(this, Accion.Publicar); | 212 this.GetEstado().Promover(this, Accion.Publicar); |
212 } | 213 } |
213 | 214 |
214 public virtual void Cancelar() | 215 public virtual void Cancelar() |
215 { | 216 { |
216 GetEstado().Promover(this, Accion.Cancelar); | 217 GetEstado().Promover(this, Accion.Cancelar); |
217 } | 218 } |
218 | 219 |
219 public virtual void Descartar() | 220 public virtual void Descartar() |
220 { | 221 { |
221 GetEstado().Promover(this, Accion.Descartar); | 222 GetEstado().Promover(this, Accion.Descartar); |
222 } | 223 } |
223 | 224 |
224 public virtual void ReProponer() | 225 public virtual void ReProponer() |
225 { | 226 { |
226 GetEstado().Promover(this, Accion.ReProponer); | 227 GetEstado().Promover(this, Accion.ReProponer); |
227 } | 228 } |
228 | 229 |
229 public virtual void ReAgendar() | 230 public virtual void ReAgendar() |
230 { | 231 { |
231 GetEstado().Promover(this, Accion.ReAgendar); | 232 GetEstado().Promover(this, Accion.ReAgendar); |
232 } | 233 } |
233 #endregion | 234 #endregion |
234 | 235 |
235 protected internal virtual void AddTrack(Track track) | 236 protected internal virtual void AddTrack(Track track) |
236 { | 237 { |
237 _newTracks.Add(track); | 238 _newTracks.Add(track); |
238 _tracks.Add(track); | 239 _tracks.Add(track); |
239 } | 240 } |
240 | 241 |
241 public virtual IEnumerable<Track> GetTrackNews() | 242 public virtual IEnumerable<Track> GetTrackNews() |
242 { | 243 { |
243 return _newTracks; | 244 return _newTracks; |
244 } | 245 } |
245 } | 246 } |
246 } | 247 } |