annotate Agendas/trunk/src/Agendas.Domain/Evento.cs @ 106:80c22175c9b5

agregado de tipo de evento (van, cafe, grupoestudio) agregado de tipo de evento en el alta de evento y en el alta de propuestas desde la app web algunas correcciones en el publicador del blog agregado de textos para publicar en el blog eventos de tipo alt.net cafe
author jorge.rowies
date Mon, 06 Jun 2011 14:07:12 -0300
parents 1d820f17fc75
children 90ce239cfa6d
rev   line source
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
1 using System;
12
05996fa19e04 Unificamos Van y Cafe en Evento
nelo@MTEySS.neluz.int
parents: 4
diff changeset
2 using System.Collections.Generic;
104
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
3 using AltNetHispano.Agendas.Domain.Exceptions;
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
4
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
5 namespace AltNetHispano.Agendas.Domain
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
6 {
56
65bbcdd5d357 Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents: 54
diff changeset
7 public class Evento : Identificable
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
8 {
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
9 protected Evento()
57
3d9e6d56d903 Refactoring del track de cambios de un evento
nelopauselli
parents: 56
diff changeset
10 {
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
11 _tracks = new List<Track>();
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
12 }
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
13
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
14 #region Propiedades del Evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
15
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
16 private readonly IList<Track> _tracks;
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
17 private readonly ICollection<Track> _newTracks = new List<Track>();
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
18
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
19 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
20 /// Título del evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
21 /// </summary>
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
22 public virtual string Titulo { get; private set; }
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
23
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
24 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
25 /// Fecha para la que se encuentra agendado el evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
26 /// </summary>
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
27 public virtual DateTime? Fecha { get; private set; }
70
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
28
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
29 /// <summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
30 /// Url con la invitacion realizada por el ponente (en la mayoria de los casos va a ser un link al thread de la lista de correo)
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
31 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
32 public virtual string UrlInvitacion { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
33
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
34 /// <summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
35 /// Url a la pagina de la wiki con el video de la reunion virtual
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
36 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
37 public virtual string UrlWiki { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
38
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
39 /// <summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
40 /// Numero de orden en el historico de reuniones virtuales
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
41 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
42 public virtual short NumeroOrden { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
43
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
44 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
45 /// Ponente o responsable del evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
46 /// </summary>
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 95
diff changeset
47 public virtual Persona Ponente { get; private set; }
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
48
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
49 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
50 /// Track de cambios que ha sufrido el evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
51 /// </summary>
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
52 public virtual IEnumerable<Track> Tracks
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
53 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
54 get { return _tracks; }
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
55 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
56
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
57 /// <summary>
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
58 /// Estado del evento en formato string (para persistencia a DB)
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
59 /// </summary>
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
60 public virtual string Estado
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
61 {
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
62 get
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
63 {
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
64 if (_eventoState != null)
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
65 return _eventoState.GetDescripcion();
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
66
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
67 return string.Empty;
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
68 }
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
69 set
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
70 {
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
71 if (value != Estado)
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
72 {
104
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
73 if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value))
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
74 _eventoState = EventoPropuestoState.GetInstance();
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
75 else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value))
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
76 _eventoState = EventoAgendadoState.GetInstance();
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
77 else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value))
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
78 _eventoState = EventoConfirmadoState.GetInstance();
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
79 else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value))
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
80 _eventoState = EventoPublicadoState.GetInstance();
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
81 else
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
82 throw new InvalidStateException(value);
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
83 }
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
84 }
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
85 }
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
86
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
87 private EventoState _eventoState;
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
88
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
89 /// <summary>
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
90 /// Obtiene una instancia de la clase que representa el estado del evento
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
91 /// </summary>
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
92 public virtual EventoState GetEstado()
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
93 {
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
94 if (_eventoState == null)
104
c5034884c7d7 refactor para que los estados sean singletons
jorge.rowies
parents: 103
diff changeset
95 SetEstado(EventoNullState.GetInstance());
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
96
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
97 return _eventoState;
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
98 }
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
99
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
100 /// <summary>
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
101 /// Asigna la instancia de la clase que representa el estado del evento
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
102 /// </summary>
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
103 /// <param name="eventoState">Instancia que representa el estado</param>
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
104 public virtual void SetEstado(EventoState eventoState)
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
105 {
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
106 _eventoState = eventoState;
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
107 }
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
108
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
109 public virtual TipoEvento Tipo { get; private set; }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
110
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
111 #endregion
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
112
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
113 #region Acciones sobre el evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
114
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
115 /// <summary>
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
116 /// Propone un evento
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
117 /// </summary>
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
118 /// <param name="titulo">Título del evento propuesto</param>
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
119 /// <param name="persona">Ponente para evento propuesto</param>
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
120 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
121 /// <param name="tipo">Tipo del evento</param>
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
122 /// <returns></returns>
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
123 public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo)
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
124 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
125 var evento = new Evento {Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo};
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
126 evento.GetEstado().Promover(evento, Accion.Proponer);
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
127
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
128 return evento;
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
129 }
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
130
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
131 /// <summary>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
132 /// Agenda un evento que no estaba propuesto
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
133 /// </summary>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
134 /// <param name="titulo">Título del evento a agendar</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
135 /// <param name="persona">Ponente para el evento</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
136 /// <param name="fecha">Fecha de realización del evento</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
137 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
138 /// <param name="tipo">Tipo del evento</param>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
139 /// <returns></returns>
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
140 public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
141 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
142 var evento = new Evento {Titulo = titulo, Tipo = tipo};
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
143 evento.Agendar(persona, fecha, urlInvitacion);
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
144
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
145 return evento;
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
146 }
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
147
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
148 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
149 /// Agenda el evento actual
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
150 /// </summary>
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
151 /// <param name="persona">Ponente para el evento</param>
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
152 /// <param name="fecha">Fecha de realización del evento</param>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
153 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
154 public virtual void Agendar(Persona persona, DateTime? fecha, string urlInvitacion)
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
155 {
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 95
diff changeset
156 Ponente = persona;
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
157 Fecha = fecha;
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
158 UrlInvitacion = urlInvitacion;
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
159 this.GetEstado().Promover(this, Accion.Agendar);
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
160 }
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
161
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 87
diff changeset
162 public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
163 {
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 95
diff changeset
164 Ponente = persona;
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
165 Fecha = fecha;
79
8df9db937434 Url de invitación en la UI: validación y persistencia
nelopauselli
parents: 75
diff changeset
166 UrlInvitacion = urlInvitacion;
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
167
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
168 AddTrack(new Track(this, Accion.Modificar));
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
169 }
41
07c47ea2ac00 movimos el AddTrack a cada acción dentro de Evento
nelopauselli
parents: 39
diff changeset
170
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
171 public virtual void CambiarTitulo(string titulo)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
172 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
173 Titulo = titulo;
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
174 AddTrack(new Track(this, Accion.CambiarTitulo));
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
175 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
176
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
177 public virtual void Confirmar()
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
178 {
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
179 this.GetEstado().Promover(this, Accion.Confirmar);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
180 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
181
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 104
diff changeset
182 public virtual void Publicar(short numeroOrden, string urlWiki)
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 104
diff changeset
183 {
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 104
diff changeset
184 this.NumeroOrden = numeroOrden;
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 104
diff changeset
185 this.UrlWiki = urlWiki;
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
186 this.GetEstado().Promover(this, Accion.Publicar);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
187 }
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
188
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
189 #endregion
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
190
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
191 protected internal virtual void AddTrack(Track track)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
192 {
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
193 _newTracks.Add(track);
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
194 _tracks.Add(track);
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
195 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
196
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
197 public virtual IEnumerable<Track> GetTrackNews()
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
198 {
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
199 return _newTracks;
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
200 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
201 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
202 }