view Agendas/trunk/src/Agendas.Blog/Impl/AgendarReunionPostWriter.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents a300394dbabe
children 2434c2323f3d
line wrap: on
line source

using System;
using System.Globalization;
using Agendas.Blog.Properties;
using AltNetHispano.Agendas.Domain;
using System.Linq;

namespace Agendas.Blog.Impl
{
	public class AgendarReunionPostWriter : PostWriter
	{
		protected override string GetTitle(Evento evento)
		{
			return string.Format(CultureInfo.InvariantCulture, Resources.VAN_Realizacion_Title,
													 evento.Persona.Nombre, //Nombre y apellido del ponente
													 evento.Titulo //Tema a tratar en la reunion
				);
		}

		protected override string GetBody(Evento evento)
		{
			var fecha = getFechaFormateada(evento.Fecha);
			return string.Format(CultureInfo.InvariantCulture, Resources.VAN_Realizacion_Body,
													 fecha, //Fecha y hora en GMT+0
													 evento.Persona.Nombre, //Nombre y apellido del ponente
													 evento.Titulo, //Tema a tratar en la reunion
													 getUrlInvitacion(evento), //Url a la invitacion realizada por el ponente (por lo general es el thread en la lista de correo)
													 GetNombreUsuario(evento) //Usuario que postea en el blog
				);
		}

		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.VAN_Realizacion_Body_UrlListaCorreo,
														 evento.UrlInvitacion); 
			}

			return string.Empty;
		}
	}
}