Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 4:49b572535156
proponer van
publicar van propuesta
comportamiento ante excepcion en publicador
author | nelopauselli |
---|---|
date | Tue, 08 Feb 2011 00:08:49 -0300 |
parents | 5f007e266509 |
children | 2912c1dd0e6b |
rev | line source |
---|---|
1 | 1 using System; |
2 | 2 using System.Collections.Generic; |
4 | 3 using AltNetHispano.Agendas.Domain.Exceptions; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
4 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
5 namespace AltNetHispano.Agendas.Domain |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
6 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 public class Agenda |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
8 { |
3 | 9 private readonly IList<Evento> _eventos; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
10 private readonly IPublicador _publicador; |
1 | 11 private readonly IRecordador _recordador; |
2 | 12 |
13 public Agenda(IPublicador publicador, IRecordador recordador) | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
14 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
15 _publicador = publicador; |
1 | 16 _recordador = recordador; |
2 | 17 _eventos = new List<Evento>(); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
18 } |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
19 |
3 | 20 public Guid Id { get; set; } |
21 | |
22 public IEnumerable<Evento> Eventos | |
23 { | |
24 get { return _eventos; } | |
25 } | |
26 | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
27 public void Publicar(Evento evento) |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
28 { |
4 | 29 if (!evento.Fecha.HasValue) |
30 throw new ValidationException(); | |
31 | |
1 | 32 if (_publicador != null) |
33 _publicador.Publicar(evento); | |
4 | 34 _eventos.Add(evento); |
1 | 35 } |
36 | |
4 | 37 public void Publicar(Van van) |
38 { | |
39 if (string.IsNullOrWhiteSpace(van.Ponente)) | |
40 throw new ValidationException(); | |
41 Publicar(van as Evento); | |
42 } | |
43 | |
44 | |
1 | 45 public void Recordar(Evento evento) |
46 { | |
47 if (_recordador != null) | |
48 _recordador.Recordar(evento); | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
49 } |
4 | 50 |
51 public void Proponer(Van van) | |
52 { | |
53 if (string.IsNullOrWhiteSpace(van.Titulo)) | |
54 throw new ValidationException(); | |
55 _eventos.Add(van); | |
56 } | |
57 | |
58 public IList<Evento> GetEventosPropuestos() | |
59 { | |
60 return _eventos; | |
61 } | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
62 } |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
63 } |