annotate Agendas/trunk/src/Agendas.Google/GCalendarAdapter.cs @ 298:9bc60d166c8a

Se corrigieron los tests por el cambio de Patrocinador, para que no persista el logo en disco. Se comentó el código de PatrocinadorApiController, que no se utiliza.
author juanjose.montesdeocaarbos
date Sun, 19 Feb 2012 16:00:38 -0300
parents 734d3f0853bf
children
rev   line source
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
1 using System;
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
2 using AltNetHispano.Agendas.Configurations;
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
3 using Google.GData.Calendar;
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
4 using Google.GData.Extensions;
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
5
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
6 namespace AltNetHispano.Agendas.Google
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
7 {
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
8 public class GCalendarAdapter : IGCalendarAdapter
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
9 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
10 private readonly CalendarService _service;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
11 private readonly Uri _feedUri;
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
12
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
13 public bool CreateEvent(IGEventDetail gEventDetail, out string message)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
14 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
15 try
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
16 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
17 var entry = new EventEntry
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
18 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
19 Title = {Text = gEventDetail.Title},
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
20 Content = {Content = gEventDetail.Summary}
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
21 };
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
22
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
23 var eventLocation = new Where
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
24 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
25 ValueString = gEventDetail.Location
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
26 };
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
27
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
28 entry.Locations.Add(eventLocation);
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
29
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
30 var eventTime = new When(gEventDetail.StartEvent, gEventDetail.EndEvent);
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
31 entry.Times.Add(eventTime);
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
32
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
33 _service.Insert(_feedUri, entry);
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
34 message = "Event create successful";
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
35 return true;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
36 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
37 catch (Exception exception)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
38 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
39 message = exception.Message;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
40 return false;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
41 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
42 }
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
43
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
44 public bool DeleteEvent(DateTime startEvent, DateTime endEvent, out string message)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
45 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
46 try
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
47 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
48 var myQuery = new EventQuery
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
49 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
50 StartTime = startEvent,
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
51 EndTime = endEvent,
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
52 Uri = _feedUri
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
53 };
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
54
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
55 var myResultsFeed = _service.Query(myQuery);
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
56 if (myResultsFeed.Entries.Count > 0)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
57 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
58 myResultsFeed.Entries[0].Delete();
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
59 message = "Event delete successful";
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
60 return true;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
61 }
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
62
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
63 message = "Event not found";
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
64 return false;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
65 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
66 catch (Exception exception)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
67 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
68 message = exception.Message;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
69 return false;
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
70 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
71 }
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
72
158
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
73 public GCalendarAdapter(string applicationName) : this(applicationName,
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
74 AgendasConfigurationManager.Publicadores.Google.Calendar.
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
75 UserName,
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
76 AgendasConfigurationManager.Publicadores.Google.Calendar.
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
77 Password,
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
78 AgendasConfigurationManager.Publicadores.Google.Calendar.
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
79 CalendarId)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
80 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
81 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
82
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
83 public GCalendarAdapter(string applicationName, string userName, string password, string calendarId)
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
84 {
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
85 _service = new CalendarService(applicationName);
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
86 _service.setUserCredentials(userName, password);
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
87 _feedUri = new Uri("https://www.google.com/calendar/feeds/" + calendarId + "/private/full");
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
88 }
734d3f0853bf Manejando configuración de los publicadores con una sección propia en los .config
nelopauselli
parents: 130
diff changeset
89 }
125
34b2f85aecab Se crea adaptador para conectar con Google Calendar, además de crear funcionalidad para insertar y eliminar un evento en el calendario de google.
alabra
parents:
diff changeset
90 }