Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 237:51faeabfb9d9
Todos los tests en verde quitando al ponente principal
author | nelopauselli |
---|---|
date | Tue, 04 Oct 2011 21:30:55 -0300 |
parents | c61954d24c8c |
children | 59f8fa2f835e |
comparison
equal
deleted
inserted
replaced
236:04d6b386afa7 | 237:51faeabfb9d9 |
---|---|
48 | 48 |
49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, IEnumerable<Guid> ponentesId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion) | 49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, IEnumerable<Guid> ponentesId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion) |
50 { | 50 { |
51 Evento evento = GetEvento(eventoId); | 51 Evento evento = GetEvento(eventoId); |
52 | 52 |
53 if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any())) | 53 if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id=>id!=Guid.Empty))) |
54 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); | 54 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); |
55 | 55 |
56 if (evento.Titulo != titulo) | 56 if (evento.Titulo != titulo) |
57 evento.CambiarTitulo(titulo); | 57 evento.CambiarTitulo(titulo); |
58 | 58 |
59 if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null) | 59 if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null) |
60 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); | 60 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); |
61 else if (evento.FechaInicio != fechaInicio || evento.UrlInvitacion != urlInvitacion || evento.FechaTermino != fechaTermino) | 61 else if (evento.FechaInicio != fechaInicio || evento.UrlInvitacion != urlInvitacion || evento.FechaTermino != fechaTermino) |
62 evento.Actualizar(fechaInicio, fechaTermino, urlInvitacion); | 62 evento.Actualizar(fechaInicio, fechaTermino, urlInvitacion); |
63 | 63 |
64 var r = ActualizarPonentes(evento, ponentesId); | 64 var r = ActualizarPonentes(evento, ponentesId, Accion.Modificar); |
65 if (!r.Succeful) return r; | 65 if (!r.Succeful) return r; |
66 | 66 |
67 Notify(evento); | 67 Notify(evento); |
68 | 68 |
69 var warnings = evento.GetLogsNews().Where(l => !l.Successful); | 69 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
81 if (string.IsNullOrWhiteSpace(titulo)) | 81 if (string.IsNullOrWhiteSpace(titulo)) |
82 return new EventoResultado(false, "Debe indicar el título del evento", null); | 82 return new EventoResultado(false, "Debe indicar el título del evento", null); |
83 | 83 |
84 var evento = Evento.Proponer(titulo, urlInvitacion, tipo); | 84 var evento = Evento.Proponer(titulo, urlInvitacion, tipo); |
85 | 85 |
86 var r = ActualizarPonentes(evento, ponentesId); | 86 var r = ActualizarPonentes(evento, ponentesId, null); |
87 if (!r.Succeful) return r; | 87 if (!r.Succeful) return r; |
88 | 88 |
89 Notify(evento); | 89 Notify(evento); |
90 | 90 |
91 _eventosRepository.Save(evento); | 91 _eventosRepository.Save(evento); |
99 { | 99 { |
100 if (!fechaInicio.HasValue) | 100 if (!fechaInicio.HasValue) |
101 return new EventoResultado(false, "Debe indicar la fecha", null); | 101 return new EventoResultado(false, "Debe indicar la fecha", null); |
102 if (!fechaTermino.HasValue) | 102 if (!fechaTermino.HasValue) |
103 return new EventoResultado(false, "Debe indicar la hora y duración", null); | 103 return new EventoResultado(false, "Debe indicar la hora y duración", null); |
104 if (tipo==TipoEvento.Van && (ponentesId == null || !ponentesId.Any())) | 104 if (tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id => id != Guid.Empty))) |
105 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); | 105 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); |
106 | 106 |
107 var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo); | 107 var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo); |
108 if (existeOtroEvento != null) | 108 if (existeOtroEvento != null) |
109 return new EventoResultado(false, | 109 return new EventoResultado(false, |
124 if (evento == null) | 124 if (evento == null) |
125 evento = Evento.Agendar(titulo, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo); | 125 evento = Evento.Agendar(titulo, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo); |
126 else | 126 else |
127 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); | 127 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); |
128 | 128 |
129 var r = ActualizarPonentes(evento, ponentesId); | 129 var r = ActualizarPonentes(evento, ponentesId, null); |
130 if (!r.Succeful) return r; | 130 if (!r.Succeful) return r; |
131 | 131 |
132 Notify(evento); | 132 Notify(evento); |
133 | 133 |
134 _eventosRepository.Save(evento); | 134 _eventosRepository.Save(evento); |
136 var warnings = evento.GetLogsNews().Where(l => !l.Successful); | 136 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
137 | 137 |
138 return new EventoResultado(true, "Evento creado", warnings); | 138 return new EventoResultado(true, "Evento creado", warnings); |
139 } | 139 } |
140 | 140 |
141 private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId) | 141 private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId, Accion? action) |
142 { | 142 { |
143 var ponentes = new List<Persona>(); | 143 var ponentes = new List<Persona>(); |
144 if (ponentesId != null) | 144 if (ponentesId != null) |
145 { | 145 { |
146 foreach (var ponenteId in ponentesId.Where(id=>id!=Guid.Empty)) | 146 foreach (var ponenteId in ponentesId.Where(id=>id!=Guid.Empty)) |
149 if (colaborador == null) | 149 if (colaborador == null) |
150 return new EventoResultado(false, string.Format("No se encontró el colaborador indicado ({0})", ponenteId), | 150 return new EventoResultado(false, string.Format("No se encontró el colaborador indicado ({0})", ponenteId), |
151 null); | 151 null); |
152 ponentes.Add(colaborador); | 152 ponentes.Add(colaborador); |
153 } | 153 } |
154 evento.ActualizarOtrosPonentes(ponentes); | 154 evento.ActualizarPonentes(ponentes, action); |
155 } | 155 } |
156 return new EventoResultado(true, "Ponentes actualizados", null); | 156 return new EventoResultado(true, "Ponentes actualizados", null); |
157 } | 157 } |
158 | 158 |
159 public EventoResultado Confirmar(Guid eventoId) | 159 public EventoResultado Confirmar(Guid eventoId) |