Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Google/GCalendarAdapter.cs @ 225:f23ee59ef1bd
Otros ponentes
author | nelopauselli |
---|---|
date | Mon, 26 Sep 2011 08:47:01 -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 } |