Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Domain/Evento.cs @ 70:c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
modificaciones en proyecto Agendas.Blog
modificacion de viewmodel EventoModel - agregado de UrlInvitacion (no requerido)
author | jorge.rowies |
---|---|
date | Fri, 20 May 2011 12:21:07 -0300 |
parents | 963b71ea6028 |
children | 76567a0d1e44 |
line wrap: on
line source
using System; using System.Collections.Generic; namespace AltNetHispano.Agendas.Domain { public class Evento : Identificable { private readonly IList<Track> _tracks; private IList<string> _enlaces; public static Evento Proponer(string titulo, Ponente ponente) { var evento = new Evento { Titulo = titulo, Ponente = ponente }; evento.AddTracks(new Track(Accion.Proponer)); return evento; } public static Evento Publicar(string titulo, Ponente ponente, DateTime fecha, string urlInvitacion) { var evento = new Evento { Titulo = titulo }; evento.Publicar(ponente, fecha, urlInvitacion); return evento; } protected Evento() { _enlaces = new List<string>(); _tracks = new List<Track>(); } public virtual string Titulo { get; private set; } public virtual DateTime? Fecha { get; private set; } public virtual string Sintesis { get; private set; } /// <summary> /// Url con la invitacion realizada por el ponente (en la mayoria de los casos va a ser un link al thread de la lista de correo) /// </summary> public virtual string UrlInvitacion { get; private set; } /// <summary> /// Url a la pagina de la wiki con el video de la reunion virtual /// </summary> public virtual string UrlWiki { get; private set; } /// <summary> /// Numero de orden en el historico de reuniones virtuales /// </summary> public virtual short NumeroOrden { get; private set; } private Ponente _ponente; public virtual Ponente Ponente { get { return _ponente; } private set { if (value == null && _ponente != null || value != _ponente && _ponente != null) _ponente.RemoveEvento(this); if (value != null) value.AddEvento(this); _ponente = value; } } public virtual IEnumerable<string> Enlaces { get { return _enlaces; } } public virtual IEnumerable<Track> Tracks { get { return _tracks; } } public virtual void Actualizar(Ponente ponente, DateTime? fecha) { Ponente = ponente; Fecha = fecha; AddTracks(new Track(Accion.Modificar)); } public virtual void CambiarTitulo(string titulo) { Titulo = titulo; AddTracks(new Track(Accion.CambiarTitulo)); } public virtual void Publicar(Ponente ponente, DateTime? fecha, string urlInvitacion) { Ponente = ponente; Fecha = fecha; UrlInvitacion = urlInvitacion; AddTracks(new Track(Accion.Publicar)); } public virtual void Realizado(DateTime fecha, string sintesis, IList<string> enlaces, string urlWiki, short numeroOrden) { Fecha = fecha; Sintesis = sintesis; _enlaces = enlaces; UrlWiki = urlWiki; NumeroOrden = numeroOrden; } public virtual void Realizado(string sintesis) { Sintesis = sintesis; AddTracks(new Track(Accion.Realizar)); } private void AddTracks(Track track) { _tracks.Add(track); } } }