Mercurial > altnet-hispano
view 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 |
line wrap: on
line source
using System; using System.Globalization; using Agendas.Blog.Exceptions; using Agendas.Blog.Properties; using AltNetHispano.Agendas.Domain; namespace Agendas.Blog.Impl { public class AgendarReunionPostWriter : PostWriter { public AgendarReunionPostWriter(IPostWriterWebService postWriterWebService) : base(postWriterWebService) { } protected override string GetTitle(Track track) { string resourceName = getTitleResourceName(track); return string.Format(CultureInfo.InvariantCulture, resourceName, track.Evento.GetPonentesAsString(p => p.Nombre), //Nombre y apellido del ponente track.Evento.Titulo); //Tema a tratar en la reunion } private string getTitleResourceName(Track track) { string resourceName; if (track.Evento.Tipo == TipoEvento.Van) resourceName = Resources.VAN_Agendar_Title; else if (track.Evento.Tipo == TipoEvento.Cafe) resourceName = Resources.Cafe_Agendar_Title; else throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString()); return resourceName; } protected override string GetBody(Track track) { string resourceName = getBodyResourceName(track); var fecha = getFechaFormateada(track.Evento.FechaInicio); return string.Format(CultureInfo.InvariantCulture, resourceName, fecha, //Fecha y hora en GMT+0 track.Evento.GetPonentesAsString(p => p.Nombre), //Nombre y apellido del ponente track.Evento.Titulo, //Tema a tratar en la reunion getUrlInvitacion(track.Evento), //Url a la invitacion realizada por el ponente (por lo general es el thread en la lista de correo) GetNombreUsuario(track) //Usuario que postea en el blog ); } private string getBodyResourceName(Track track) { string resourceName; if (track.Evento.Tipo == TipoEvento.Van) resourceName = Resources.VAN_Agendar_Body; else if (track.Evento.Tipo == TipoEvento.Cafe) resourceName = Resources.Cafe_Agendar_Body; else throw new TipoEventoNoSoportadoException(track.Evento.Tipo.ToString()); return resourceName; } private string getFechaFormateada(DateTime? fecha) { if (fecha == null) throw new ArgumentNullException("fecha"); var fechaCast = (DateTime)fecha; var culture = CultureInfo.CreateSpecificCulture("es-ES"); var result = fechaCast.ToString("D", culture) + " a las " + fechaCast.ToString("t", culture) + " UTC/GMT"; return result; } private string getUrlInvitacion(Evento evento) { if (!string.IsNullOrEmpty(evento.UrlInvitacion)) { return string.Format(CultureInfo.InvariantCulture, Resources.Reunion_Agendar_Body_UrlListaCorreo, evento.UrlInvitacion); } return string.Empty; } } }