annotate Agendas/trunk/src/Agendas.Google/GCalendarAdapter.cs @ 190:e6abe8e1a794

Mejoras menores en shorten url
author nelopauselli
date Tue, 09 Aug 2011 09:45:07 -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 }