Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Agenda.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 | 212c664db5aa |
children | 4d0b2552edb2 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Mon Aug 08 22:32:12 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Tue Aug 09 01:04:27 2011 -0400 @@ -46,7 +46,7 @@ return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>(); } - public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion) + public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion) { Evento evento = GetEvento(eventoId); Persona persona = _personaRepository.Get(ponenteId); @@ -54,10 +54,11 @@ if (evento.Titulo != titulo) evento.CambiarTitulo(titulo); - if (evento.Fecha == null && fecha != null) - evento.Agendar(persona, fecha, urlInvitacion); - else if (evento.Fecha != fecha || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion) - evento.Actualizar(persona, fecha, urlInvitacion); + if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null) + evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion); + else if (evento.FechaInicio != fechaInicio || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion || + evento.FechaTermino != fechaTermino) + evento.Actualizar(persona, fechaInicio, fechaTermino, urlInvitacion); Notify(evento); @@ -68,7 +69,7 @@ public EventoResultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion) { - return ModificarEvento(id, titulo, ponenteId, null, urlInvitacion); + return ModificarEvento(id, titulo, ponenteId, null, null, urlInvitacion); } public EventoResultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo) @@ -91,20 +92,22 @@ return new EventoResultado(true,"Evento propuesto", warnings); } - public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo) + public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo) { - if (!fecha.HasValue) + if (!fechaInicio.HasValue) return new EventoResultado(false, "Debe indicar la fecha", null); + if (!fechaTermino.HasValue) + return new EventoResultado(false, "Debe indicar la hora y duración", null); Persona persona = _personaRepository.Get(ponenteId); if (persona == null) - return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null); + return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null); Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); if (evento == null) - evento = Evento.Agendar(titulo, persona, fecha.Value, urlInvitacion, tipo); + evento = Evento.Agendar(titulo, persona, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo); else - evento.Agendar(persona, fecha, urlInvitacion); + evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion); Notify(evento);