Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Twitter/TwitterPublicador.cs @ 286:a8f7c41e3b47
#196: Patrocinadores, en el histórico de eventos.
author | juanjose.montesdeocaarbos |
---|---|
date | Mon, 02 Jan 2012 15:51:19 -0300 |
parents | 33e6ee3d1776 |
children |
rev | line source |
---|---|
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:
158
diff
changeset
|
1 using System; |
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:
158
diff
changeset
|
2 using System.Collections.Generic; |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
3 using System.Linq; |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
122
diff
changeset
|
4 using AltNetHispano.Agendas.Configurations; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Domain; |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
6 using AltNetHispano.Agendas.Twitter.Writers; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
3
diff
changeset
|
8 namespace AltNetHispano.Agendas.Twitter |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
9 { |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
34
diff
changeset
|
10 public class TwitterPublicador : IPublicador |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
11 { |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
12 private readonly IDictionary<Accion, ITwitterWriter> _writers; |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
13 private readonly ITwitterAdapter _twitterAdapter; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
14 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
15 public TwitterPublicador() |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
16 : this(new TwitterAdapter()) |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
17 { |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
18 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
19 |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
20 public TwitterPublicador(ITwitterAdapter twitterAdapter) |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
21 { |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
22 _writers = new Dictionary<Accion, ITwitterWriter> |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
23 { |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
24 {Accion.Proponer, new ProponerTwitterWriter()}, |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
25 {Accion.Agendar, new AgendarTwitterWriter()}, |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
26 {Accion.Confirmar, new ConfirmarTwitterWriter()}, |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
27 {Accion.Publicar, new PublicarTwitterWriter()} |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
28 }; |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
29 |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
30 _twitterAdapter = twitterAdapter; |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
31 } |
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
32 |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
33 private const int LIMITE_MENSAJE = 134; |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
34 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
34
diff
changeset
|
35 public void Publicar(IEnumerable<Track> tracks) |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
36 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
122
diff
changeset
|
37 if (!AgendasConfigurationManager.Publicadores.Twitter.Enabled) return; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
122
diff
changeset
|
38 |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
39 foreach (var track in tracks) |
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
40 { |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
41 if (track.Evento.FechaInicio < DateTime.Today || track.Evento.FechaTermino < DateTime.Today) |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
42 { |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
43 var message = string.Empty; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
44 |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
45 message = "Solo se generan twitts de eventos futuros."; |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
46 |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
47 track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, false)); |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
48 } |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
49 else |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
50 { |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
51 //Si ya hicimos el twitt de este track, no volvemos a hacerlo |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
52 if (track.Logs.Any(l => l.Propietario == TrackLogPropietario.Twitter && l.Successful)) continue; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
53 |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
54 var twitt = BuildTwitt(track); |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
55 if (twitt.Length > 0) |
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:
158
diff
changeset
|
56 { |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
57 try |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
58 { |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
59 var success = true; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
60 var message = string.Empty; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
61 |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
62 foreach (var t in twitt) |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
63 { |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
64 string m; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
65 success &= _twitterAdapter.Update(t, out m); |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
66 message += m; |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
67 } |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
68 track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, message, track.Usuario, success)); |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
69 } |
272
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
70 catch (Exception ex) |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
71 { |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
72 track.LogAdd(new TrackLog(TrackLogPropietario.Twitter, track.Usuario, ex)); |
33e6ee3d1776
Ticket #181: No twittear eventos pasados. Tests armado, y su corrección. Corrección de otros tests que intentaban twittear con fechas fijas.
juanjose.montesdeocaarbos
parents:
271
diff
changeset
|
73 } |
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:
158
diff
changeset
|
74 } |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
110
diff
changeset
|
75 } |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
76 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
77 } |
108
786a90e26c9b
Los tests ya twittean con la cuenta de altnet-hispano-desa
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
78 |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
79 private string[] BuildTwitt(Track track) |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
80 { |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
81 ITwitterWriter writer; |
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
82 if (!_writers.TryGetValue(track.Accion, out writer)) |
271
e2c6610b14c7
Ticket #194: Error enviar twit cuando Cancela Evento. Test y Corrección.
juanjose.montesdeocaarbos
parents:
228
diff
changeset
|
83 return new string[0]; |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
84 |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
85 var partes = writer.Write(track).Where(t => !string.IsNullOrWhiteSpace(t)).ToArray(); |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
86 |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
87 var twitters = new List<string>(); |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
88 |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
89 string twitter = string.Empty; |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
90 for (int index = 0; index < partes.Length; index++) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
91 { |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
92 string parte = partes[index]; |
122
17531db40d4e
Refactoring de la generación de mensajes en twitter
nelopauselli
parents:
120
diff
changeset
|
93 |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
94 var nuevo = twitter + parte; |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
95 if (nuevo.Length < LIMITE_MENSAJE) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
96 twitter = nuevo; |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
97 else |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
98 { |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
99 if (index<parte.Length-1) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
100 twitter += "..."; |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
101 if (twitters.Any()) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
102 twitter = "..." + twitter; |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
103 |
228
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
104 twitters.Add(twitter); |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
105 twitter = parte.Trim(); |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
106 } |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
107 } |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
108 if (!string.IsNullOrWhiteSpace(twitter)) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
109 { |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
110 if (twitters.Any()) |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
111 twitter = "..." + twitter; |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
112 twitters.Add(twitter); |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
113 } |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
114 |
9f61e8555114
Nombrando a todos los ponentes en los twitter y partiendo los mensajes que superan el máximo permitido
nelopauselli
parents:
182
diff
changeset
|
115 return twitters.ToArray(); |
110
a456eb519e23
Lanzando twitts desde el sitio con la cuenta de AltNetHispanoDESA
Nelo@Kenia.neluz.int
parents:
108
diff
changeset
|
116 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
117 } |
3 | 118 } |