annotate Agendas/trunk/src/Agendas.Google/GCalendarAdapter.cs @ 140:3639803112c6

Refactoring de la relación entre Evento y Estado
author nelopauselli
date Fri, 29 Jul 2011 16:30:53 -0300
parents 0ea32a748453
children 734d3f0853bf
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;
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
2 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
3 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
4
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 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
6 {
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 public class GCalendarAdapter : IGCalendarAdapter
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
8 {
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
9 private readonly CalendarService _service;
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
10 private readonly Uri _feedUri;
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
11
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
12 public bool CreateEvent(IGEventDetail gEventDetail, out string message)
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
13 {
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
14 try
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
15 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
16 var entry = new EventEntry
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
17 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
18 Title = { Text = gEventDetail.Title },
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
19 Content = { Content = gEventDetail.Summary }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
20 };
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
21
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
22 var eventLocation = new Where
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
23 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
24 ValueString = gEventDetail.Location
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
25 };
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
26
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
27 entry.Locations.Add(eventLocation);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
28
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
29 var eventTime = new When(gEventDetail.StartEvent, gEventDetail.EndEvent);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
30 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
31
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
32 _service.Insert(_feedUri, entry);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
33 message = "Event create successful";
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
34 return true;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
35 }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
36 catch (Exception exception)
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
37 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
38 message = exception.Message;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
39 return false;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
40 }
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
41 }
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
42
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
43 public bool DeleteEvent(DateTime startEvent, DateTime endEvent, out string message)
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
44 {
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
45 try
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
46 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
47 var myQuery = new EventQuery
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
48 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
49 StartTime = startEvent,
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
50 EndTime = endEvent,
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
51 Uri = _feedUri
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
52 };
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
53
130
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
54 var myResultsFeed = _service.Query(myQuery);
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
55 if (myResultsFeed.Entries.Count > 0)
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
56 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
57 myResultsFeed.Entries[0].Delete();
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
58 message = "Event delete successful";
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
59 return true;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
60 }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
61
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
62 message = "Event not found";
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
63 return false;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
64 }
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
65 catch (Exception exception)
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
66 {
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
67 message = exception.Message;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
68 return false;
0ea32a748453 Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
alabra
parents: 125
diff changeset
69 }
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
70 }
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
71
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 public GCalendarAdapter(string applicationName ,string userName, string password, string calendarId)
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
73 {
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
74 _service = new CalendarService(applicationName);
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
75 _service.setUserCredentials(userName, password);
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
76 _feedUri = new Uri("https://www.google.com/calendar/feeds/" + calendarId + "/private/full");
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
77 }
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
78 }
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
79 }