annotate Agendas/trunk/src/Agendas.Blog/Impl/AgendarReunionPostWriter.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents 80c22175c9b5
children e38d53a1ead9
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 using System.Linq;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
7
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
8 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
9 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
10 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
11 {
99
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
12 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
13 {
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
14 }
3027c64344bd agregado de llamadas a web service para crear posts en el blog de la comunidad
jorge.rowies
parents: 77
diff changeset
15
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
16 protected override string GetTitle(Track track)
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
17 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
18 string resourceName = getTitleResourceName(track);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
19
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
20 return string.Format(CultureInfo.InvariantCulture, resourceName,
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
21 track.Evento.Ponente.Nombre, //Nombre y apellido del ponente
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
22 track.Evento.Titulo //Tema a tratar en la reunion
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 }
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
25
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
26 private string getTitleResourceName(Track track)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
27 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
28 string resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
29 if (track.Evento.Tipo == TipoEvento.Van)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
30 resourceName = Resources.VAN_Agendar_Title;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
31 else if (track.Evento.Tipo == TipoEvento.Cafe)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
32 resourceName = Resources.Cafe_Agendar_Title;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
33 else
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
34 throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString());
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 return resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
37 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
38
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
39 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
40 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
41 string resourceName = getBodyResourceName(track);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
42
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
43 var fecha = getFechaFormateada(track.Evento.FechaInicio);
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
44 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
45 fecha, //Fecha y hora en GMT+0
105
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
46 track.Evento.Ponente.Nombre, //Nombre y apellido del ponente
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
47 track.Evento.Titulo, //Tema a tratar en la reunion
1d820f17fc75 ajustes y correcciones en el publicador de blogs
jorge.rowies
parents: 100
diff changeset
48 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
49 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
50 );
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
51 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
52
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
53 private string getBodyResourceName(Track track)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
54 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
55 string resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
56 if (track.Evento.Tipo == TipoEvento.Van)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
57 resourceName = Resources.VAN_Agendar_Body;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
58 else if (track.Evento.Tipo == TipoEvento.Cafe)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
59 resourceName = Resources.Cafe_Agendar_Body;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
60 else
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
61 throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString());
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 return resourceName;
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
64 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
65
77
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
66 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
67 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
68 if (fecha == null)
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
69 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
70
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
71 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
72 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
73 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
74 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
75
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
76 return result;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
77 }
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 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
80 {
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
81 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
82 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
83 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
84 evento.UrlInvitacion);
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
85 }
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 return string.Empty;
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
88 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
89 }
a300394dbabe cambios minimos en el publicador del blog por la reestructuracion de estados de los eventos
jorge.rowies
parents:
diff changeset
90 }