Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Google/GooglePublicador.cs @ 225:f23ee59ef1bd
Otros ponentes
author | nelopauselli |
---|---|
date | Mon, 26 Sep 2011 08:47:01 -0300 |
parents | cd96cfc8a1f5 |
children |
rev | line source |
---|---|
184
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
1 using System; |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
2 using System.Collections.Generic; |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
3 using AltNetHispano.Agendas.Configurations; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
4 using AltNetHispano.Agendas.Domain; |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
5 using AltNetHispano.Agendas.Google.DetailsEvents; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
6 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
3
diff
changeset
|
7 namespace AltNetHispano.Agendas.Google |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
8 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
9 public class GooglePublicador : IPublicador |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
10 { |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
11 private readonly IGCalendarAdapter _adapter; |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
12 private readonly IDictionary<TipoEvento, IGEventDetail> _gEventDetails; |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
13 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
14 private static string GetUserName |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
15 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
16 get { return AgendasConfigurationManager.Publicadores.Google.Calendar.UserName; } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
17 } |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
18 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
19 private static string GetPassword |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
20 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
21 get { return AgendasConfigurationManager.Publicadores.Google.Calendar.Password; } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
22 } |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
23 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
24 private static string GetCalendarId |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
25 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
26 get { return AgendasConfigurationManager.Publicadores.Google.Calendar.CalendarId; } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
27 } |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
28 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
29 public void Publicar(IEnumerable<Track> tracks) |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
30 { |
158
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
31 if (!AgendasConfigurationManager.Publicadores.Google.Enabled) return; |
734d3f0853bf
Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents:
135
diff
changeset
|
32 |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
33 foreach (var track in tracks) |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
34 { |
184
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
35 try |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
36 { |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
37 switch (track.Accion) |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
38 { |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
39 case Accion.Agendar: |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
40 PublicarAccionAgendar(track); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
41 break; |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
42 case Accion.Cancelar: |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
43 PublicarAccionCancelar(track); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
44 break; |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
45 } |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
46 } |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
47 catch (Exception ex) |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
48 { |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
49 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, track.Usuario, ex)); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
50 } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
51 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
52 } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
53 |
135
80156ae1493f
Se agrega la eliminación de un evento cuando la acción sea Cancelar. Además se arregla la descripción de los eventos Alt.Net Café y Grupo de estudio debido a que los
alabra
parents:
130
diff
changeset
|
54 private void PublicarAccionCancelar(Track track) |
80156ae1493f
Se agrega la eliminación de un evento cuando la acción sea Cancelar. Además se arregla la descripción de los eventos Alt.Net Café y Grupo de estudio debido a que los
alabra
parents:
130
diff
changeset
|
55 { |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
184
diff
changeset
|
56 string message; |
198 | 57 var result= _adapter.DeleteEvent(track.Evento.FechaInicio.Value, track.Evento.FechaTermino.Value, out message); |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
184
diff
changeset
|
58 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result)); |
135
80156ae1493f
Se agrega la eliminación de un evento cuando la acción sea Cancelar. Además se arregla la descripción de los eventos Alt.Net Café y Grupo de estudio debido a que los
alabra
parents:
130
diff
changeset
|
59 } |
80156ae1493f
Se agrega la eliminación de un evento cuando la acción sea Cancelar. Además se arregla la descripción de los eventos Alt.Net Café y Grupo de estudio debido a que los
alabra
parents:
130
diff
changeset
|
60 |
184
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
61 private void PublicarAccionAgendar(Track track) |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
62 { |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
63 _gEventDetails[track.Evento.Tipo].Generate(track.Evento); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
64 string message; |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
65 var result = _adapter.CreateEvent(_gEventDetails[track.Evento.Tipo], out message); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
66 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result)); |
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
67 } |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
68 |
184
2a336a6a76b5
Agregando log al track cuando fallan los publicadores
nelopauselli
parents:
158
diff
changeset
|
69 public GooglePublicador() |
130
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
70 : this(new GCalendarAdapter("VAN", GetUserName, GetPassword, GetCalendarId)) |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
71 { |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
72 } |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
73 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
74 public GooglePublicador(IGCalendarAdapter gCalendarAdapter) |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
75 { |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
76 _adapter = gCalendarAdapter; |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
77 |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
78 _gEventDetails = new Dictionary<TipoEvento, IGEventDetail> |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
79 { |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
80 {TipoEvento.Van, new VanGEventDetail()}, |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
81 {TipoEvento.Cafe, new CafeGEventDetail()}, |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
82 {TipoEvento.GrupoEstudio, new EstudioGEventDetail()} |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
83 }; |
0ea32a748453
Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents:
87
diff
changeset
|
84 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
85 } |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
86 } |