comparison Agendas/trunk/src/Agendas.Domain/Evento.cs @ 87:26d0513a8410

A los publicadores les llega la lista de tracks producidos en la acción realizada Quitamos el concepto de Recordador ya que el mismo es un publicador, cuándo publicar es responsabilidad de cada publicador
author nelopauselli
date Fri, 27 May 2011 14:42:38 -0300
parents c76661cff260
children db4b1e2cae49
comparison
equal deleted inserted replaced
86:723aed93a0e6 87:26d0513a8410
12 12
13 #region Propiedades del Evento 13 #region Propiedades del Evento
14 14
15 private readonly IList<Track> _tracks; 15 private readonly IList<Track> _tracks;
16 private Ponente _ponente; 16 private Ponente _ponente;
17 private readonly ICollection<Track> _newTracks = new List<Track>();
17 18
18 /// <summary> 19 /// <summary>
19 /// Título del evento 20 /// Título del evento
20 /// </summary> 21 /// </summary>
21 public virtual string Titulo { get; private set; } 22 public virtual string Titulo { get; private set; }
75 /// <param name="ponente">Ponente para evento propuesto</param> 76 /// <param name="ponente">Ponente para evento propuesto</param>
76 /// <returns></returns> 77 /// <returns></returns>
77 public static Evento Proponer(string titulo, Ponente ponente, string urlInvitacion) 78 public static Evento Proponer(string titulo, Ponente ponente, string urlInvitacion)
78 { 79 {
79 var evento = new Evento {Titulo = titulo, Ponente = ponente, UrlInvitacion = urlInvitacion}; 80 var evento = new Evento {Titulo = titulo, Ponente = ponente, UrlInvitacion = urlInvitacion};
80 evento.AddTracks(new Track(evento, Accion.Proponer)); 81 evento.AddTrack(new Track(evento, Accion.Proponer));
81 82
82 return evento; 83 return evento;
83 } 84 }
84 85
85 /// <summary> 86 /// <summary>
107 public virtual void Agendar(Ponente ponente, DateTime? fecha, string urlInvitacion) 108 public virtual void Agendar(Ponente ponente, DateTime? fecha, string urlInvitacion)
108 { 109 {
109 Ponente = ponente; 110 Ponente = ponente;
110 Fecha = fecha; 111 Fecha = fecha;
111 UrlInvitacion = urlInvitacion; 112 UrlInvitacion = urlInvitacion;
112 AddTracks(new Track(this, Accion.Agendar)); 113 AddTrack(new Track(this, Accion.Agendar));
113 } 114 }
114 115
115 public virtual void Actualizar(Ponente ponente, DateTime? fecha, string urlInvitacion) 116 public virtual void Actualizar(Ponente ponente, DateTime? fecha, string urlInvitacion)
116 { 117 {
117 Ponente = ponente; 118 Ponente = ponente;
118 Fecha = fecha; 119 Fecha = fecha;
119 UrlInvitacion = urlInvitacion; 120 UrlInvitacion = urlInvitacion;
120 121
121 AddTracks(new Track(this, Accion.Modificar)); 122 AddTrack(new Track(this, Accion.Modificar));
122 } 123 }
123 124
124 public virtual void CambiarTitulo(string titulo) 125 public virtual void CambiarTitulo(string titulo)
125 { 126 {
126 Titulo = titulo; 127 Titulo = titulo;
127 AddTracks(new Track(this, Accion.CambiarTitulo)); 128 AddTrack(new Track(this, Accion.CambiarTitulo));
128 } 129 }
129 130
130 public virtual void Confirmar() 131 public virtual void Confirmar()
131 { 132 {
132 AddTracks(new Track(this, Accion.Confirmar)); 133 AddTrack(new Track(this, Accion.Confirmar));
133 } 134 }
134 135
135 public virtual void Publicar() 136 public virtual void Publicar()
136 { 137 {
137 AddTracks(new Track(this, Accion.Publicar)); 138 AddTrack(new Track(this, Accion.Publicar));
138 } 139 }
139 140
140 #endregion 141 #endregion
141 142
142 private void AddTracks(Track track) 143 private void AddTrack(Track track)
143 { 144 {
145 _newTracks.Add(track);
144 _tracks.Add(track); 146 _tracks.Add(track);
145 } 147 }
146 148
149 public virtual IEnumerable<Track> GetTrackNews()
150 {
151 return _newTracks;
152 }
147 } 153 }
148 } 154 }