Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Evento.cs @ 133:6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
Falta solucionar problema con flujo, ver más información en el ticket de assembla.
http://www.assembla.com/spaces/altnet-hispano/tickets/146-implementar-estado-descartar-y-cancelar-de-eventos
author | alabra |
---|---|
date | Sun, 10 Jul 2011 23:59:19 -0400 |
parents | 90ce239cfa6d |
children | 62791999ad01 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Evento.cs Sun Jul 10 23:55:56 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Domain/Evento.cs Sun Jul 10 23:59:19 2011 -0400 @@ -54,37 +54,41 @@ get { return _tracks; } } - /// <summary> - /// Estado del evento en formato string (para persistencia a DB) - /// </summary> - public virtual string Estado - { - get - { - if (_eventoState != null) - return _eventoState.GetDescripcion(); + /// <summary> + /// Estado del evento en formato string (para persistencia a DB) + /// </summary> + public virtual string Estado + { + get + { + if (_eventoState != null) + return _eventoState.GetDescripcion(); - return string.Empty; - } - set - { - if (value != Estado) - { - if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) - _eventoState = EventoPropuestoState.GetInstance(); - else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) - _eventoState = EventoAgendadoState.GetInstance(); - else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) - _eventoState = EventoConfirmadoState.GetInstance(); - else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) - _eventoState = EventoPublicadoState.GetInstance(); - else - throw new InvalidStateException(value); - } - } - } + return string.Empty; + } + set + { + if (value != Estado) + { + if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoPropuestoState.GetInstance(); + else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoAgendadoState.GetInstance(); + else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoConfirmadoState.GetInstance(); + else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoPublicadoState.GetInstance(); + else if (EventoCanceladoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoCanceladoState.GetInstance(); + else if (EventoDescartadoState.GetInstance().GetDescripcion().Equals(value)) + _eventoState = EventoDescartadoState.GetInstance(); + else + throw new InvalidStateException(value); + } + } + } - private EventoState _eventoState; + private EventoState _eventoState; /// <summary> /// Obtiene una instancia de la clase que representa el estado del evento @@ -112,40 +116,40 @@ #region Acciones sobre el evento - /// <summary> - /// Propone un evento - /// </summary> - /// <param name="titulo">Título del evento propuesto</param> - /// <param name="persona">Ponente para evento propuesto</param> - /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> - /// <param name="tipo">Tipo del evento</param> - /// <returns></returns> - public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo) + /// <summary> + /// Propone un evento + /// </summary> + /// <param name="titulo">Título del evento propuesto</param> + /// <param name="persona">Ponente para evento propuesto</param> + /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> + /// <param name="tipo">Tipo del evento</param> + /// <returns></returns> + public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo) { var evento = new Evento {Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo}; - evento.GetEstado().Promover(evento, Accion.Proponer); + evento.GetEstado().Promover(evento, Accion.Proponer); return evento; } - /// <summary> - /// Agenda un evento que no estaba propuesto - /// </summary> - /// <param name="titulo">Título del evento a agendar</param> - /// <param name="persona">Ponente para el evento</param> - /// <param name="fecha">Fecha de realización del evento</param> - /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> - /// <param name="tipo">Tipo del evento</param> - /// <returns></returns> - public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) - { - var evento = new Evento {Titulo = titulo, Tipo = tipo}; - evento.Agendar(persona, fecha, urlInvitacion); + /// <summary> + /// Agenda un evento que no estaba propuesto + /// </summary> + /// <param name="titulo">Título del evento a agendar</param> + /// <param name="persona">Ponente para el evento</param> + /// <param name="fecha">Fecha de realización del evento</param> + /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> + /// <param name="tipo">Tipo del evento</param> + /// <returns></returns> + public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) + { + var evento = new Evento {Titulo = titulo, Tipo = tipo}; + evento.Agendar(persona, fecha, urlInvitacion); - return evento; - } + return evento; + } - /// <summary> + /// <summary> /// Agenda el evento actual /// </summary> /// <param name="persona">Ponente para el evento</param> @@ -156,7 +160,7 @@ Ponente = persona; Fecha = fecha; UrlInvitacion = urlInvitacion; - this.GetEstado().Promover(this, Accion.Agendar); + this.GetEstado().Promover(this, Accion.Agendar); } public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion) @@ -168,25 +172,44 @@ AddTrack(new Track(this, Accion.Modificar)); } - public virtual void CambiarTitulo(string titulo) + public virtual void CambiarTitulo(string titulo) + { + Titulo = titulo; + AddTrack(new Track(this, Accion.CambiarTitulo)); + } + + public virtual void Confirmar() { - Titulo = titulo; - AddTrack(new Track(this, Accion.CambiarTitulo)); + this.GetEstado().Promover(this, Accion.Confirmar); + } + + public virtual void Publicar(short numeroOrden, string urlWiki) + { + this.NumeroOrden = numeroOrden; + this.UrlWiki = urlWiki; + this.GetEstado().Promover(this, Accion.Publicar); } - public virtual void Confirmar() - { - this.GetEstado().Promover(this, Accion.Confirmar); - } + public virtual void Cancelar() + { + GetEstado().Promover(this, Accion.Cancelar); + } + + public virtual void Descartar() + { + GetEstado().Promover(this, Accion.Descartar); + } - public virtual void Publicar(short numeroOrden, string urlWiki) - { - this.NumeroOrden = numeroOrden; - this.UrlWiki = urlWiki; - this.GetEstado().Promover(this, Accion.Publicar); - } + public virtual void ReProponer() + { + GetEstado().Promover(this, Accion.ReProponer); + } - #endregion + public virtual void ReAgendar() + { + GetEstado().Promover(this, Accion.ReAgendar); + } + #endregion protected internal virtual void AddTrack(Track track) { @@ -194,9 +217,9 @@ _tracks.Add(track); } - public virtual IEnumerable<Track> GetTrackNews() - { - return _newTracks; - } + public virtual IEnumerable<Track> GetTrackNews() + { + return _newTracks; + } } } \ No newline at end of file