comparison Agendas/trunk/src/Agendas.Domain/Evento.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents beeb48ddb44a
children 5346c0500594
comparison
equal deleted inserted replaced
184:2a336a6a76b5 185:2d02adb79322
23 public virtual string Titulo { get; private set; } 23 public virtual string Titulo { get; private set; }
24 24
25 /// <summary> 25 /// <summary>
26 /// Fecha para la que se encuentra agendado el evento 26 /// Fecha para la que se encuentra agendado el evento
27 /// </summary> 27 /// </summary>
28 public virtual DateTime? Fecha { get; private set; } 28 public virtual DateTime? FechaInicio { get; private set; }
29 29
30 /// <summary> 30 /// <summary>
31 /// Fecha de termino o finalización del evento.
32 /// </summary>
33 public virtual DateTime? FechaTermino { get; private set; }
34
35 /// <summary>
31 /// 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) 36 /// 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)
32 /// </summary> 37 /// </summary>
33 public virtual string UrlInvitacion { get; private set; } 38 public virtual string UrlInvitacion { get; private set; }
34 39
35 /// <summary> 40 /// <summary>
116 evento.Estado.Promover(evento, Accion.Proponer); 121 evento.Estado.Promover(evento, Accion.Proponer);
117 122
118 return evento; 123 return evento;
119 } 124 }
120 125
121 /// <summary> 126 /// <summary>
122 /// Agenda un evento que no estaba propuesto 127 /// Agenda un evento que no estaba propuesto
123 /// </summary> 128 /// </summary>
124 /// <param name="titulo">Título del evento a agendar</param> 129 /// <param name="titulo">Título del evento a agendar</param>
125 /// <param name="persona">Ponente para el evento</param> 130 /// <param name="persona">Ponente para el evento</param>
126 /// <param name="fecha">Fecha de realización del evento</param> 131 /// <param name="fechaInicio">Fecha de realización del evento</param>
127 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> 132 /// <param name="fechaTermino">Fecha de termino del evento</param>
128 /// <param name="tipo">Tipo del evento</param> 133 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
129 /// <returns></returns> 134 /// <param name="tipo">Tipo del evento</param>
130 public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) 135 /// <returns></returns>
136 public static Evento Agendar(string titulo, Persona persona, DateTime fechaInicio, DateTime fechaTermino, string urlInvitacion, TipoEvento tipo)
131 { 137 {
132 var evento = new Evento { Titulo = titulo, Tipo = tipo }; 138 var evento = new Evento { Titulo = titulo, Tipo = tipo };
133 evento.Agendar(persona, fecha, urlInvitacion); 139 evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion);
134 140
135 return evento; 141 return evento;
136 } 142 }
137 143
138 /// <summary> 144 /// <summary>
139 /// Agenda el evento actual 145 /// Agenda el evento actual
140 /// </summary> 146 /// </summary>
141 /// <param name="persona">Ponente para el evento</param> 147 /// <param name="persona">Ponente para el evento</param>
142 /// <param name="fecha">Fecha de realización del evento</param> 148 /// <param name="fechaInicio">Fecha de realización del evento</param>
143 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> 149 /// <param name="fechaTermino">Fecha de termino del evento</param>
144 public virtual void Agendar(Persona persona, DateTime? fecha, string urlInvitacion) 150 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
151 public virtual void Agendar(Persona persona, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion)
145 { 152 {
146 Ponente = persona; 153 Ponente = persona;
147 Fecha = fecha; 154 FechaInicio = fechaInicio;
155 FechaTermino = fechaTermino;
148 UrlInvitacion = urlInvitacion; 156 UrlInvitacion = urlInvitacion;
149 Estado.Promover(this, Accion.Agendar); 157 Estado.Promover(this, Accion.Agendar);
150 } 158 }
151 159
152 public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion) 160 public virtual void Actualizar(Persona persona, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion)
153 { 161 {
154 Ponente = persona; 162 Ponente = persona;
155 Fecha = fecha; 163 FechaInicio = fechaInicio;
164 FechaTermino = fechaTermino;
156 UrlInvitacion = urlInvitacion; 165 UrlInvitacion = urlInvitacion;
157 166
158 AddTrack(new Track(this, Accion.Modificar)); 167 AddTrack(new Track(this, Accion.Modificar));
159 } 168 }
160 169