annotate Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 282:bc8dfbde0523

#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author juanjose.montesdeocaarbos
date Mon, 26 Dec 2011 14:21:44 -0300
parents 1caba33bd0b7
children 79942e030118
rev   line source
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
1 using System;
2
c03560ae4762 Test de Crud para la agenda
nelopauselli
parents: 1
diff changeset
2 using System.Collections.Generic;
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
3 using System.Linq;
4
49b572535156 proponer van
nelopauselli
parents: 3
diff changeset
4 using AltNetHispano.Agendas.Domain.Exceptions;
15
08b9e96132a5 Persistimos los eventos de la agenda
nelo@MTEySS.neluz.int
parents: 14
diff changeset
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 {
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
9 public class Agenda
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
10 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
11 private readonly IEventoRepository _eventosRepository;
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
15 private readonly IPublicador _publicador;
2
c03560ae4762 Test de Crud para la agenda
nelopauselli
parents: 1
diff changeset
16
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
19 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
20 _publicador = publicador;
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
21 _patrocinadorRepository = patrocinadorRepository;
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
22 _personaRepository = personaRepository;
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
23 _eventosRepository = eventosRepository;
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
24 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
25
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
26 public Evento GetEvento(Guid eventoId)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
27 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
28 Evento evento = _eventosRepository.Get(eventoId);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
29 if (evento == null)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
30 throw new EventoNotFoundException(eventoId);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
31 return evento;
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
32 }
3
5f007e266509 code cleanup
nelopauselli
parents: 2
diff changeset
33
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
34 public IList<Evento> GetEventosActivos(EventoState state)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
35 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
36 return _eventosRepository.GetByState(state) ?? new List<Evento>();
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
39 public IList<Evento> GetEventosActivos()
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
40 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
41 return _eventosRepository.GetActivos() ?? new List<Evento>();
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
42 }
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
43
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
44 public IEnumerable<Evento> GetHistorico()
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
45 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>();
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
47 }
119
8fa58a79656a Historico
Nelo@Kenia.neluz.int
parents: 118
diff changeset
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
50 {
231
e5959f3405e0 Eventos sin ponentes
nelopauselli
parents: 225
diff changeset
51 Evento evento = GetEvento(eventoId);
e5959f3405e0 Eventos sin ponentes
nelopauselli
parents: 225
diff changeset
52
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
53 if (evento.Tipo == TipoEvento.Van && (ponentesId == null || !ponentesId.Any(id => id != Guid.Empty)))
231
e5959f3405e0 Eventos sin ponentes
nelopauselli
parents: 225
diff changeset
54 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
55
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
56 if (evento.Titulo != titulo)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
57 evento.CambiarTitulo(titulo);
54
3059a5f8930f Code cleanup
nelopauselli
parents: 53
diff changeset
58
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
59 if (evento.FechaInicio == null && fechaInicio != null && evento.FechaTermino == null && fechaTermino != null)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
60 evento.Agendar(fechaInicio, fechaTermino, urlInvitacion);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
61 else if (evento.FechaInicio != fechaInicio || evento.UrlInvitacion != urlInvitacion || evento.FechaTermino != fechaTermino)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
62 evento.Actualizar(fechaInicio, fechaTermino, urlInvitacion);
235
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
67 Notify(evento);
54
3059a5f8930f Code cleanup
nelopauselli
parents: 53
diff changeset
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
3059a5f8930f Code cleanup
nelopauselli
parents: 53
diff changeset
70
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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);
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
77 }
4
49b572535156 proponer van
nelopauselli
parents: 3
diff changeset
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
80 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
81 if (string.IsNullOrWhiteSpace(titulo))
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
89 Notify(evento);
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 50
diff changeset
90
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
91 _eventosRepository.Save(evento);
4
49b572535156 proponer van
nelopauselli
parents: 3
diff changeset
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
3d9e6d56d903 Refactoring del track de cambios de un evento
nelopauselli
parents: 54
diff changeset
94
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
98 public EventoResultado Agendar(string titulo, IEnumerable<Guid> ponentesId, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion, TipoEvento tipo)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
99 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
100 if (!fechaInicio.HasValue)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
101 return new EventoResultado(false, "Debe indicar la fecha", null);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
102 if (!fechaTermino.HasValue)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
e5959f3405e0 Eventos sin ponentes
nelopauselli
parents: 225
diff changeset
105 return new EventoResultado(false, "Debe indicar el ponente para este tipo de evento", null);
24
41b283d27e3e Ponentes como entidad
nelo@MTEySS.neluz.int
parents: 21
diff changeset
106
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
107 var existeOtroEvento = _eventosRepository.GetNoPropuestoByTitulo(titulo);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
108 if (existeOtroEvento != null)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
109 return new EventoResultado(false,
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
110 string.Format(
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
111 "Ya existe un evento con el mismo título ({0}) del {1}, por favor ingrese otro.",
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
112 titulo, existeOtroEvento.FechaInicio.Value.ToShortDateString()), null);
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
113
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
125 evento = Evento.Agendar(titulo, fechaInicio.Value, fechaTermino.Value, urlInvitacion, tipo);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
126 else
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
f23ee59ef1bd Otros ponentes
nelopauselli
parents: 216
diff changeset
131
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
132 Notify(evento);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
133
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
134 _eventosRepository.Save(evento);
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
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
141 private EventoResultado ActualizarPonentes(Evento evento, IEnumerable<Guid> ponentesId, Accion? action)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
142 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
143 var ponentes = new List<Persona>();
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
144 if (ponentesId != null)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
145 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
146 foreach (var ponenteId in ponentesId.Where(id => id != Guid.Empty))
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
147 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
148 var colaborador = _personaRepository.Get(ponenteId);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
149 if (colaborador == null)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
150 return new EventoResultado(false, string.Format("No se encontró el colaborador indicado ({0})", ponenteId),
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
151 null);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
152 ponentes.Add(colaborador);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
153 }
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
154 evento.ActualizarPonentes(ponentes, action);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
155 }
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
156 return new EventoResultado(true, "Ponentes actualizados", null);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
157 }
235
c61954d24c8c Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents: 231
diff changeset
158
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
159 public EventoResultado Confirmar(Guid eventoId)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
160 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
161 Evento evento = GetEvento(eventoId);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
162
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
163 evento.Confirmar();
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
164
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
165 Notify(evento);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
166
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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);
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
175 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
176 if (numeroOrden <= 0)
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
179 if (string.IsNullOrWhiteSpace(urlWiki))
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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))
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
183 return new EventoResultado(false, "Duración fuera de rango", null);
244
31fb96912d37 Ticket 162: Publicaciones con Nro Orden repetido.
juanjose.montesdeocaarbos
parents: 243
diff changeset
184
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
185 if (_eventosRepository.GetByState(EventoPublicadoState.GetInstance()).Any(e => e.NumeroOrden.Equals(numeroOrden)))
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
186 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
187 return new EventoResultado(false, "El número de evento ya se encuentra en uso", null);
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
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
282
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 280
diff changeset
190 var evento = GetEvento(eventoId);
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 280
diff changeset
191
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 280
diff changeset
192 if (/*evento.Tipo == TipoEvento.Van &&*/ evento.Patrocinadores.Count() == 0)
bc8dfbde0523 #123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents: 280
diff changeset
193 return new EventoResultado(false, "La VAN debe tener al menos un Patrocinador para ser publicada.", null);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
194
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
195 evento.Publicar(numeroOrden, urlWiki, duracion);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
196
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
197 Notify(evento);
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
198
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
199 _eventosRepository.Save(evento);
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
200
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 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 79
diff changeset
202
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
203 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
204 }
24
41b283d27e3e Ponentes como entidad
nelo@MTEySS.neluz.int
parents: 21
diff changeset
205
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
206 public EventoResultado Cancelar(Guid eventoId)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
207 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
208 Evento evento = GetEvento(eventoId);
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
209
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
210 evento.Cancelar();
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
211
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
212 Notify(evento);
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
213
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
214 _eventosRepository.Save(evento);
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
215
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 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
217
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
218 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
219 }
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
220
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
221 public EventoResultado Descartar(Guid eventoId)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
222 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
223 Evento evento = GetEvento(eventoId);
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
224
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
225 evento.Descartar();
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
226
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
227 Notify(evento);
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
228
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
229 _eventosRepository.Save(evento);
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
230
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 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
232
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
233 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
234 }
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
235
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
236 public EventoResultado ReProponer(Guid eventoId)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
237 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
238 Evento evento = GetEvento(eventoId);
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
239
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
240 evento.ReProponer();
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
241
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
242 Notify(evento);
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
243
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
244 _eventosRepository.Save(evento);
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
245
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 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
247
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
248 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
249 }
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
250
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
251 public EventoResultado ReAgendar(Guid eventoId)
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
252 {
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
253 Evento evento = GetEvento(eventoId);
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
254
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
255 evento.ReAgendar();
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
256
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
257 Notify(evento);
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
258
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
259 _eventosRepository.Save(evento);
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
260
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 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
262
280
1caba33bd0b7 Cambiandos espacios por tabuladores, etc.
juanjose.montesdeocaarbos
parents: 274
diff changeset
263 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
264 }
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
265
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
266 public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores)
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
267 {
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
268 var evento = GetEvento(eventoId);
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 var agregar = new List<Patrocinador>();
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
271 var quitar = new List<Patrocinador>();
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
272
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
273 foreach (var patrocinadorId in patrocinadores)
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
274 {
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
275 if (!evento.Patrocinadores.Any(p => p.Id == patrocinadorId))
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 var patrocinador = _patrocinadorRepository.Get(patrocinadorId);
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
278 agregar.Add(patrocinador);
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
279 }
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
280 }
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
281
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
282 foreach (var patrocinador in evento.Patrocinadores)
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
283 {
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
284 if (!patrocinadores.Any(p => p == patrocinador.Id))
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
285 quitar.Add(patrocinador);
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
286 }
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 agregar)
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
289 evento.AddPatrocinador(patrocinador);
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
290
274
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
291 foreach (var patrocinador in quitar)
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
292 evento.RemovePatrocinador(patrocinador);
72a96459f910 Ticket #123: Patrocinadores de las vans.
juanjose.montesdeocaarbos
parents: 244
diff changeset
293 }
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
294
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 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
296 {
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 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
298 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
299 _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
300 }
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 //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
303 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
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 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
306 _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
307 }
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
308
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
309 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
310 }