annotate Agendas/trunk/src/Agendas.Google/GooglePublicador.cs @ 158:734d3f0853bf

Manejando configuración de los publicadores con una sección propia en los .config Agregando la opción de habilitar / deshabilitar un publicador
author nelopauselli
date Fri, 05 Aug 2011 16:55:18 -0300
parents 80156ae1493f
children 2a336a6a76b5
rev   line source
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
1 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
2 using AltNetHispano.Agendas.Configurations;
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
3 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
4 using AltNetHispano.Agendas.Google.DetailsEvents;
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
5
34
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 3
diff changeset
6 namespace AltNetHispano.Agendas.Google
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
7 {
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
8 public class GooglePublicador : IPublicador
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
9 {
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
10 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
11 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
12
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
13 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
14 {
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 135
diff changeset
15 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
16 }
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 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
19 {
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 135
diff changeset
20 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
21 }
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 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
24 {
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 135
diff changeset
25 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
26 }
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 public void Publicar(IEnumerable<Track> tracks)
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
29 {
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 135
diff changeset
30 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
31
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
32 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
33 {
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
34 switch (track.Accion)
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
35 {
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
36 case Accion.Agendar:
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
37 PublicarAccionAgendar(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
38 break;
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
39 case Accion.Cancelar:
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
40 PublicarAccionCancelar(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
41 break;
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
42 }
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
43 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
44 }
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
45
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
46 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
47 {
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
48 string message;
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
49 var result= _adapter.DeleteEvent(track.Evento.Fecha.Value, track.Evento.Fecha.Value.AddHours(2), out message);
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
50 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result));
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
51 }
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
52
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
53 private void PublicarAccionAgendar(Track track)
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
54 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
55 string message;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
56 _gEventDetails[track.Evento.Tipo].Generate(track.Evento);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
57 var result = _adapter.CreateEvent(_gEventDetails[track.Evento.Tipo], out message);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
58 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result));
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
59 }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
60
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
61 public GooglePublicador()
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
62 : 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
63 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
64 }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
65
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
66 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
67 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
68 _adapter = gCalendarAdapter;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
69
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
70 _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
71 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
72 {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
73 {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
74 {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
75 };
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 87
diff changeset
76 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
77 }
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
78 }