comparison Agendas/trunk/src/Agendas.Google/GooglePublicador.cs @ 130:0ea32a748453

Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
author alabra
date Sun, 10 Jul 2011 18:50:11 -0400
parents 26d0513a8410
children 80156ae1493f
comparison
equal deleted inserted replaced
129:a6d20ea228a5 130:0ea32a748453
1 using System; 1 using System.Collections.Generic;
2 using System.Collections.Generic; 2 using System.Configuration;
3 using AltNetHispano.Agendas.Domain; 3 using AltNetHispano.Agendas.Domain;
4 using AltNetHispano.Agendas.Google.DetailsEvents;
4 5
5 namespace AltNetHispano.Agendas.Google 6 namespace AltNetHispano.Agendas.Google
6 { 7 {
7 public class GooglePublicador : IPublicador 8 public class GooglePublicador : IPublicador
8 { 9 {
9 public void Publicar(IEnumerable<Track> tracks) 10 private readonly IGCalendarAdapter _adapter;
11 private readonly IDictionary<TipoEvento, IGEventDetail> _gEventDetails;
12
13 private static string GetUserName
14 {
15 get { return ConfigurationManager.AppSettings["userNameGoogleCalendar"]; }
16 }
17
18 private static string GetPassword
19 {
20 get { return ConfigurationManager.AppSettings["passwordGoogleCalendar"]; }
21 }
22
23 private static string GetCalendarId
24 {
25 get { return ConfigurationManager.AppSettings["calendarIdGoogleCalendar"]; }
26 }
27
28 public void Publicar(IEnumerable<Track> tracks)
10 { 29 {
11 throw new NotImplementedException(); 30 foreach (var track in tracks)
31 {
32 if (track.Accion == Accion.Agendar)
33 PublicarAccionAgendar(track);
34 }
12 } 35 }
36
37 private void PublicarAccionAgendar(Track track)
38 {
39 string message;
40 _gEventDetails[track.Evento.Tipo].Generate(track.Evento);
41 var result = _adapter.CreateEvent(_gEventDetails[track.Evento.Tipo], out message);
42 track.LogAdd(new TrackLog(TrackLogPropietario.Calendario, message, track.Usuario, result));
43 }
44
45 public GooglePublicador()
46 : this(new GCalendarAdapter("VAN", GetUserName, GetPassword, GetCalendarId))
47 {
48 }
49
50 public GooglePublicador(IGCalendarAdapter gCalendarAdapter)
51 {
52 _adapter = gCalendarAdapter;
53
54 _gEventDetails = new Dictionary<TipoEvento, IGEventDetail>
55 {
56 {TipoEvento.Van, new VanGEventDetail()},
57 {TipoEvento.Cafe, new CafeGEventDetail()},
58 {TipoEvento.GrupoEstudio, new EstudioGEventDetail()}
59 };
60 }
13 } 61 }
14 } 62 }