Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 6:2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 08 Feb 2011 07:47:47 -0300 |
parents | 49b572535156 |
children | deee2ca97f5b |
line wrap: on
line source
using System; using System.Collections.Generic; using AltNetHispano.Agendas.Domain.Exceptions; namespace AltNetHispano.Agendas.Domain { public class Agenda { private readonly IList<Evento> _eventosPropuestos; private readonly IList<Evento> _eventosPublicados; private readonly IPublicador _publicador; private readonly IRecordador _recordador; public Agenda(IPublicador publicador, IRecordador recordador) { _publicador = publicador; _recordador = recordador; _eventosPropuestos = new List<Evento>(); _eventosPublicados = new List<Evento>(); } public Guid Id { get; set; } public IEnumerable<Evento> EventosPropuestos { get { return _eventosPropuestos; } } public IEnumerable<Evento> EventosPublicados { get { return _eventosPublicados; } } public void Publicar(Evento evento) { if (!evento.Fecha.HasValue) throw new ValidationException(); if (_publicador != null) _publicador.Publicar(evento); _eventosPublicados.Add(evento); } public void Publicar(Van van) { if (string.IsNullOrWhiteSpace(van.Ponente)) throw new ValidationException(); Publicar(van as Evento); } public void Recordar(Evento evento) { if (_recordador != null) _recordador.Recordar(evento); } public void Proponer(Van van) { if (string.IsNullOrWhiteSpace(van.Titulo)) throw new ValidationException(); _eventosPropuestos.Add(van); } public IList<Evento> GetEventosPropuestos() { return _eventosPropuestos; } public IList<Evento> GetEventosPublicados() { return _eventosPublicados; } } }