annotate Agendas/trunk/src/Agendas.Google/GooglePublicador.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents 2a336a6a76b5
children cd96cfc8a1f5
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;
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 184
diff changeset
57 var result= _adapter.DeleteEvent(track.Evento.FechaInicio.Value, track.Evento.FechaInicio.Value.AddHours(2), out message);
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 }