Mercurial > altnet-hispano
comparison 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 |
comparison
equal
deleted
inserted
replaced
184:2a336a6a76b5 | 185:2d02adb79322 |
---|---|
44 public IEnumerable<Evento> GetHistorico() | 44 public IEnumerable<Evento> GetHistorico() |
45 { | 45 { |
46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>(); | 46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>(); |
47 } | 47 } |
48 | 48 |
49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion) | 49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion) |
50 { | 50 { |
51 Evento evento = GetEvento(eventoId); | 51 Evento evento = GetEvento(eventoId); |
52 Persona persona = _personaRepository.Get(ponenteId); | 52 Persona persona = _personaRepository.Get(ponenteId); |
53 | 53 |
54 if (evento.Titulo != titulo) | 54 if (evento.Titulo != titulo) |
55 evento.CambiarTitulo(titulo); | 55 evento.CambiarTitulo(titulo); |
56 | 56 |
57 if (evento.Fecha == null && fecha != null) | 57 if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null) |
58 evento.Agendar(persona, fecha, urlInvitacion); | 58 evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion); |
59 else if (evento.Fecha != fecha || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion) | 59 else if (evento.FechaInicio != fechaInicio || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion || |
60 evento.Actualizar(persona, fecha, urlInvitacion); | 60 evento.FechaTermino != fechaTermino) |
61 evento.Actualizar(persona, fechaInicio, fechaTermino, urlInvitacion); | |
61 | 62 |
62 Notify(evento); | 63 Notify(evento); |
63 | 64 |
64 var warnings = evento.GetLogsNews().Where(l => !l.Successful); | 65 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
65 | 66 |
66 return new EventoResultado(true,"Evento modificado", warnings); | 67 return new EventoResultado(true,"Evento modificado", warnings); |
67 } | 68 } |
68 | 69 |
69 public EventoResultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion) | 70 public EventoResultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion) |
70 { | 71 { |
71 return ModificarEvento(id, titulo, ponenteId, null, urlInvitacion); | 72 return ModificarEvento(id, titulo, ponenteId, null, null, urlInvitacion); |
72 } | 73 } |
73 | 74 |
74 public EventoResultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo) | 75 public EventoResultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo) |
75 { | 76 { |
76 Persona persona = null; | 77 Persona persona = null; |
89 var warnings = evento.GetLogsNews().Where(l => !l.Successful); | 90 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
90 | 91 |
91 return new EventoResultado(true,"Evento propuesto", warnings); | 92 return new EventoResultado(true,"Evento propuesto", warnings); |
92 } | 93 } |
93 | 94 |
94 public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo) | 95 public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo) |
95 { | 96 { |
96 if (!fecha.HasValue) | 97 if (!fechaInicio.HasValue) |
97 return new EventoResultado(false, "Debe indicar la fecha", null); | 98 return new EventoResultado(false, "Debe indicar la fecha", null); |
99 if (!fechaTermino.HasValue) | |
100 return new EventoResultado(false, "Debe indicar la hora y duración", null); | |
98 | 101 |
99 Persona persona = _personaRepository.Get(ponenteId); | 102 Persona persona = _personaRepository.Get(ponenteId); |
100 if (persona == null) | 103 if (persona == null) |
101 return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null); | 104 return new EventoResultado(false, string.Format("No se encontró el ponente indicado ({0})", ponenteId), null); |
102 | 105 |
103 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); | 106 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); |
104 if (evento == null) | 107 if (evento == null) |
105 evento = Evento.Agendar(titulo, persona, fecha.Value, urlInvitacion, tipo); | 108 evento = Evento.Agendar(titulo, persona, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo); |
106 else | 109 else |
107 evento.Agendar(persona, fecha, urlInvitacion); | 110 evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion); |
108 | 111 |
109 Notify(evento); | 112 Notify(evento); |
110 | 113 |
111 _eventosRepository.Save(evento); | 114 _eventosRepository.Save(evento); |
112 | 115 |