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>