annotate Agendas/trunk/src/Agendas.Blog/Impl/AgendarReunionPostWriter.cs @ 288:a6037c6c88d8

Se soluciona bug #198 Bug: Summary incorrecto en Google Calendar. Se parametriza la hora en el mensaje.
author user@MECHUQUE
date Mon, 30 Jan 2012 01:52:47 -0300
parents e38d53a1ead9
children
rev   line source
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
1 using System;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
2 using System.Globalization;
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
3 using Agendas.Blog.Exceptions;
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
4 using Agendas.Blog.Properties;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
5 using AltNetHispano.Agendas.Domain;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
6
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
7 namespace Agendas.Blog.Impl
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
8 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
9 public class AgendarReunionPostWriter : PostWriter
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
10 {
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
11 public AgendarReunionPostWriter(IPostWriterWebService postWriterWebService) : base(postWriterWebService)
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
12 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
13 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
14
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
15 protected override string GetTitle(Track track)
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
16 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
17 string resourceName = getTitleResourceName(track);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
18
230
e38d53a1ead9 Varios Ponentes en blog
nelopauselli
parents: 185
diff changeset
19 return string.Format(CultureInfo.InvariantCulture, resourceName,
e38d53a1ead9 Varios Ponentes en blog
nelopauselli
parents: 185
diff changeset
20 track.Evento.GetPonentesAsString(p => p.Nombre), //Nombre y apellido del ponente
e38d53a1ead9 Varios Ponentes en blog
nelopauselli
parents: 185
diff changeset
21 track.Evento.Titulo); //Tema a tratar en la reunion
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
22 }
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
23
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
24 private string getTitleResourceName(Track track)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
25 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
26 string resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
27 if (track.Evento.Tipo == TipoEvento.Van)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
28 resourceName = Resources.VAN_Agendar_Title;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
29 else if (track.Evento.Tipo == TipoEvento.Cafe)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
30 resourceName = Resources.Cafe_Agendar_Title;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
31 else
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
32 throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString());
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
33
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
34 return resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
35 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
36
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
37 protected override string GetBody(Track track)
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
38 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
39 string resourceName = getBodyResourceName(track);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
40
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 106
diff changeset
41 var fecha = getFechaFormateada(track.Evento.FechaInicio);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
42 return string.Format(CultureInfo.InvariantCulture, resourceName,
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
43 fecha, //Fecha y hora en GMT+0
230
e38d53a1ead9 Varios Ponentes en blog
nelopauselli
parents: 185
diff changeset
44 track.Evento.GetPonentesAsString(p => p.Nombre), //Nombre y apellido del ponente
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
45 track.Evento.Titulo, //Tema a tratar en la reunion
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
46 getUrlInvitacion(track.Evento), //Url a la invitacion realizada por el ponente (por lo general es el thread en la lista de correo)
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
47 GetNombreUsuario(track) //Usuario que postea en el blog
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
48 );
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
49 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
50
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
51 private string getBodyResourceName(Track track)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
52 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
53 string resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
54 if (track.Evento.Tipo == TipoEvento.Van)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
55 resourceName = Resources.VAN_Agendar_Body;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
56 else if (track.Evento.Tipo == TipoEvento.Cafe)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
57 resourceName = Resources.Cafe_Agendar_Body;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
58 else
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
59 throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString());
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
60
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
61 return resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
62 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
63
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
64 private string getFechaFormateada(DateTime? fecha)
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
65 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
66 if (fecha == null)
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
67 throw new ArgumentNullException("fecha");
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
68
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
69 var fechaCast = (DateTime)fecha;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
70 var culture = CultureInfo.CreateSpecificCulture("es-ES");
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
71 var result = fechaCast.ToString("D", culture) + " a las " +
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
72 fechaCast.ToString("t", culture) + " UTC/GMT";
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
73
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
74 return result;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
75 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
76
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
77 private string getUrlInvitacion(Evento evento)
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
78 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
79 if (!string.IsNullOrEmpty(evento.UrlInvitacion))
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
80 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
81 return string.Format(CultureInfo.InvariantCulture, Resources.Reunion_Agendar_Body_UrlListaCorreo,
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
82 evento.UrlInvitacion);
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
83 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
84
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
85 return string.Empty;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
86 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
87 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
88 }