Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Google/GCalendarAdapter.cs @ 133:6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
Falta solucionar problema con flujo, ver más información en el ticket de assembla.
http://www.assembla.com/spaces/altnet-hispano/tickets/146-implementar-estado-descartar-y-cancelar-de-eventos
author | alabra |
---|---|
date | Sun, 10 Jul 2011 23:59:19 -0400 |
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 } |