Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 278:6f5ab71614d4
#125: ABM de patrocinadores.
author | juanjose.montesdeocaarbos |
---|---|
date | Wed, 21 Dec 2011 08:47:05 -0300 |
parents | 72a96459f910 |
children | 1caba33bd0b7 |
rev | line source |
---|---|
1 | 1 using System; |
2 | 2 using System.Collections.Generic; |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
3 using System.Linq; |
4 | 4 using AltNetHispano.Agendas.Domain.Exceptions; |
15 | 5 using AltNetHispano.Agendas.Domain.Repositories; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
6 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 namespace AltNetHispano.Agendas.Domain |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
8 { |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
9 public class Agenda |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
10 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
11 private readonly IEventoRepository _eventosRepository; |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
12 private readonly IPersonaRepository _personaRepository; |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
13 private readonly IPatrocinadorRepository _patrocinadorRepository; |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
14 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
15 private readonly IPublicador _publicador; |
2 | 16 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
17 public Agenda(IPublicador publicador, IEventoRepository eventosRepository, |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
18 IPersonaRepository personaRepository, IPatrocinadorRepository patrocinadorRepository) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
19 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
20 _publicador = publicador; |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
21 _patrocinadorRepository = patrocinadorRepository; |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
22 _personaRepository = personaRepository; |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
23 _eventosRepository = eventosRepository; |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
24 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
25 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
26 public Evento GetEvento(Guid eventoId) |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
27 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
28 Evento evento = _eventosRepository.Get(eventoId); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
29 if (evento == null) |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
30 throw new EventoNotFoundException(eventoId); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
31 return evento; |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
32 } |
3 | 33 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
34 public IList<Evento> GetEventosActivos(EventoState state) |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
35 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
36 return _eventosRepository.GetByState(state) ?? new List<Evento>(); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
37 } |
29
016b9b9b8d3a
Cuando se publica una van con el mismo titulo que una propuesta, se utiliza esta
nelo@MTEySS.neluz.int
parents:
26
diff
changeset
|
38 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
39 public IList<Evento> GetEventosActivos() |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
40 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
41 return _eventosRepository.GetActivos() ?? new List<Evento>(); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
42 } |
1 | 43 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
44 public IEnumerable<Evento> GetHistorico() |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
45 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>(); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
47 } |
119 | 48 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, IEnumerable<Guid> ponentesId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
50 { |
231 | 51 Evento evento = GetEvento(eventoId); |
52 | |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
53 if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id=>id!=Guid.Empty))) |
231 | 54 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); |
39 | 55 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
56 if (evento.Titulo != titulo) |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
57 evento.CambiarTitulo(titulo); |
54 | 58 |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
59 if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null) |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
60 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
61 else if (evento.FechaInicio != fechaInicio || evento.UrlInvitacion != urlInvitacion || evento.FechaTermino != fechaTermino) |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
62 evento.Actualizar(fechaInicio, fechaTermino, urlInvitacion); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
63 |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
64 var r = ActualizarPonentes(evento, ponentesId, Accion.Modificar); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
65 if (!r.Succeful) return r; |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
50
diff
changeset
|
66 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
67 Notify(evento); |
54 | 68 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
69 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
54 | 70 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
71 return new EventoResultado(true,"Evento modificado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
72 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
73 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
74 public EventoResultado ModificarPropuesta(Guid id, string titulo, IEnumerable<Guid> ponentesId, string urlInvitacion) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
75 { |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
76 return ModificarEvento(id, titulo, ponentesId, null, null, urlInvitacion); |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
77 } |
4 | 78 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
79 public EventoResultado Proponer(string titulo, IEnumerable<Guid> ponentesId, string urlInvitacion, TipoEvento tipo) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
80 { |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
81 if (string.IsNullOrWhiteSpace(titulo)) |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
82 return new EventoResultado(false, "Debe indicar el título del evento", null); |
21
43360bf09b1a
unificando criterio de parámetros en Agenda
nelo@MTEySS.neluz.int
parents:
18
diff
changeset
|
83 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
84 var evento = Evento.Proponer(titulo, urlInvitacion, tipo); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
50
diff
changeset
|
85 |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
86 var r = ActualizarPonentes(evento, ponentesId, null); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
87 if (!r.Succeful) return r; |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
88 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
89 Notify(evento); |
53
d149bfea3892
Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents:
50
diff
changeset
|
90 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
91 _eventosRepository.Save(evento); |
4 | 92 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
93 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
57 | 94 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
95 return new EventoResultado(true,"Evento propuesto", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
96 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
97 |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
98 public EventoResultado Agendar(string titulo, IEnumerable<Guid> ponentesId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
99 { |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
100 if (!fechaInicio.HasValue) |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
101 return new EventoResultado(false, "Debe indicar la fecha", null); |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
102 if (!fechaTermino.HasValue) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
103 return new EventoResultado(false, "Debe indicar la hora y duración", null); |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
104 if (tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id => id != Guid.Empty))) |
231 | 105 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null); |
24 | 106 |
231 | 107 var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo); |
214
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
108 if (existeOtroEvento != null) |
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
109 return new EventoResultado(false, |
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
110 string.Format( |
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
111 "Ya existe un evento con el mismo título ({0}) del {1}, por favor ingrese otro.", |
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
112 titulo, existeOtroEvento.FechaInicio.Value.ToShortDateString()), null); |
7d838e7d83b3
Se soluciona ticket 176. Se agrega validación para que no se pueda agendar otro evento con el mismo título, buscando los eventos que no estén en estado propuesto.
alabra
parents:
204
diff
changeset
|
113 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
114 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); |
195
4d0b2552edb2
Ticket 170: Cuando se agenda o confirma un evento, verificar que no existan otros dentro del rango horario en que se desarrollará el evento actual.
juanjose.montesdeocaarbos
parents:
185
diff
changeset
|
115 |
196
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
116 foreach (var e in _eventosRepository.GetActivos()) |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
117 { |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
118 if (!e.Equals(evento) && fechaInicio <= e.FechaTermino && fechaTermino >= e.FechaInicio) |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
119 { |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
120 return new EventoResultado(false, string.Format("El evento que está intentando agendar entra en conflicto con '{0}'", e.Titulo), null); |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
121 } |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
122 } |
bb7a60c28d8d
TEST: Verificar que no se modifique una propuesta de VAN al intentar agendarla con fechas usadas.
juanjose.montesdeocaarbos
parents:
195
diff
changeset
|
123 |
195
4d0b2552edb2
Ticket 170: Cuando se agenda o confirma un evento, verificar que no existan otros dentro del rango horario en que se desarrollará el evento actual.
juanjose.montesdeocaarbos
parents:
185
diff
changeset
|
124 if (evento == null) |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
125 evento = Evento.Agendar(titulo, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo); |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
126 else |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
127 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion); |
11
9d6b28a696d1
corrección en método que verifica la autenticación del usuario
nelo@MTEySS.neluz.int
parents:
9
diff
changeset
|
128 |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
129 var r = ActualizarPonentes(evento, ponentesId, null); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
130 if (!r.Succeful) return r; |
225 | 131 |
132 Notify(evento); | |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
133 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
134 _eventosRepository.Save(evento); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
135 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
136 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
137 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
138 return new EventoResultado(true, "Evento creado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
139 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
140 |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
141 private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId, Accion? action) |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
142 { |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
143 var ponentes = new List<Persona>(); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
144 if (ponentesId != null) |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
145 { |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
146 foreach (var ponenteId in ponentesId.Where(id=>id!=Guid.Empty)) |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
147 { |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
148 var colaborador = _personaRepository.Get(ponenteId); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
149 if (colaborador == null) |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
150 return new EventoResultado(false, string.Format("No se encontró el colaborador indicado ({0})", ponenteId), |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
151 null); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
152 ponentes.Add(colaborador); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
153 } |
237
51faeabfb9d9
Todos los tests en verde quitando al ponente principal
nelopauselli
parents:
235
diff
changeset
|
154 evento.ActualizarPonentes(ponentes, action); |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
155 } |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
156 return new EventoResultado(true, "Ponentes actualizados", null); |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
157 } |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
158 |
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
231
diff
changeset
|
159 public EventoResultado Confirmar(Guid eventoId) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
160 { |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
161 Evento evento = GetEvento(eventoId); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
162 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
163 evento.Confirmar(); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
164 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
165 Notify(evento); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
166 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
167 _eventosRepository.Save(evento); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
168 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
169 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
170 |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
204
diff
changeset
|
171 return new EventoResultado(true, "Evento confirmado.", warnings); |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
172 } |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
173 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
174 public EventoResultado Publicar(Guid eventoId, short numeroOrden, string urlWiki, TimeSpan duracion) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
175 { |
161
c1062de96845
Al publicar una agenda el nroOrden debe ser mayor a cero y urlWiki no vacio.
juanjose.montesdeocaarbos
parents:
145
diff
changeset
|
176 if (numeroOrden <= 0) |
243
59f8fa2f835e
Ticket 177: Valor de Duración de VAN en 0.
juanjose.montesdeocaarbos
parents:
237
diff
changeset
|
177 return new EventoResultado(false, "Número de Orden fuera de rango", null); |
161
c1062de96845
Al publicar una agenda el nroOrden debe ser mayor a cero y urlWiki no vacio.
juanjose.montesdeocaarbos
parents:
145
diff
changeset
|
178 |
c1062de96845
Al publicar una agenda el nroOrden debe ser mayor a cero y urlWiki no vacio.
juanjose.montesdeocaarbos
parents:
145
diff
changeset
|
179 if (string.IsNullOrWhiteSpace(urlWiki)) |
243
59f8fa2f835e
Ticket 177: Valor de Duración de VAN en 0.
juanjose.montesdeocaarbos
parents:
237
diff
changeset
|
180 return new EventoResultado(false, "Url Wiki incorrecto", null); |
161
c1062de96845
Al publicar una agenda el nroOrden debe ser mayor a cero y urlWiki no vacio.
juanjose.montesdeocaarbos
parents:
145
diff
changeset
|
181 |
169
5c94b052d838
Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents:
161
diff
changeset
|
182 if (duracion.Hours.Equals(0) && duracion.Minutes.Equals(0)) |
244
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
183 return new EventoResultado(false, "Duración fuera de rango", null); |
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
184 |
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
185 if (_eventosRepository.GetByState(EventoPublicadoState.GetInstance()).Any(e => e.NumeroOrden.Equals(numeroOrden))) |
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
186 { |
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
187 return new EventoResultado(false, "El número de evento ya se encuentra en uso", null); |
31fb96912d37
Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents:
243
diff
changeset
|
188 } |
169
5c94b052d838
Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents:
161
diff
changeset
|
189 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
190 Evento evento = GetEvento(eventoId); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
191 |
169
5c94b052d838
Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents:
161
diff
changeset
|
192 evento.Publicar(numeroOrden, urlWiki, duracion); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
193 |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
194 Notify(evento); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
195 |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
196 _eventosRepository.Save(evento); |
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
197 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
198 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
79
diff
changeset
|
199 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
200 return new EventoResultado(true, "Evento publicado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
201 } |
24 | 202 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
203 public EventoResultado Cancelar(Guid eventoId) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
204 { |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
205 Evento evento = GetEvento(eventoId); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
206 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
207 evento.Cancelar(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
208 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
209 Notify(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
210 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
211 _eventosRepository.Save(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
212 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
213 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
214 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
215 return new EventoResultado(true,"Evento cancelado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
216 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
217 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
218 public EventoResultado Descartar(Guid eventoId) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
219 { |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
220 Evento evento = GetEvento(eventoId); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
221 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
222 evento.Descartar(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
223 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
224 Notify(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
225 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
226 _eventosRepository.Save(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
227 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
228 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
229 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
230 return new EventoResultado(true, "Evento descartado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
231 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
232 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
233 public EventoResultado ReProponer(Guid eventoId) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
234 { |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
235 Evento evento = GetEvento(eventoId); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
236 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
237 evento.ReProponer(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
238 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
239 Notify(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
240 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
241 _eventosRepository.Save(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
242 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
243 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
244 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
245 return new EventoResultado(true,"Evento re-prpuesto", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
246 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
247 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
248 public EventoResultado ReAgendar(Guid eventoId) |
145
e6e6bfb1da9e
En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents:
138
diff
changeset
|
249 { |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
250 Evento evento = GetEvento(eventoId); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
251 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
252 evento.ReAgendar(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
253 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
254 Notify(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
255 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
256 _eventosRepository.Save(evento); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
119
diff
changeset
|
257 |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
258 var warnings = evento.GetLogsNews().Where(l => !l.Successful); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
259 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
260 return new EventoResultado(true,"Evento re-agendado", warnings); |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
261 } |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
262 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
263 public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
264 { |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
265 var evento = GetEvento(eventoId); |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
266 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
267 var agregar = new List<Patrocinador>(); |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
268 var quitar = new List<Patrocinador>(); |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
269 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
270 foreach (var patrocinadorId in patrocinadores) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
271 { |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
272 if (!evento.Patrocinadores.Any(p => p.Id == patrocinadorId)) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
273 { |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
274 var patrocinador = _patrocinadorRepository.Get(patrocinadorId); |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
275 agregar.Add(patrocinador); |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
276 } |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
277 } |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
278 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
279 foreach (var patrocinador in evento.Patrocinadores) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
280 { |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
281 if (!patrocinadores.Any(p => p == patrocinador.Id)) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
282 quitar.Add(patrocinador); |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
283 } |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
284 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
285 foreach (var patrocinador in agregar) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
286 evento.AddPatrocinador(patrocinador); |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
287 |
274
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
288 foreach (var patrocinador in quitar) |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
289 evento.RemovePatrocinador(patrocinador); |
72a96459f910
Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents:
244
diff
changeset
|
290 } |
182
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
291 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
292 private void Notify(Evento evento) |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
293 { |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
294 var tracks = evento.GetTrackNews(); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
295 if (_publicador != null) |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
296 _publicador.Publicar(tracks); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
297 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
298 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
299 //TODO: este método ya no se debería usar |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
300 public void RegistrarPonente(string nombre, string mail, string twitter, string blog) |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
301 { |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
302 var ponente = new Persona(nombre, mail, twitter, blog); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
303 _personaRepository.Save(ponente); |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
304 } |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
305 |
beeb48ddb44a
Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents:
169
diff
changeset
|
306 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
307 } |