Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/Evento.cs @ 61:cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
author | nelopauselli |
---|---|
date | Tue, 17 May 2011 01:27:03 -0300 |
parents | 3d9e6d56d903 |
children | 963b71ea6028 |
rev | line source |
---|---|
1 | 1 using System; |
12 | 2 using System.Collections.Generic; |
1 | 3 |
4 namespace AltNetHispano.Agendas.Domain | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
5 { |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
54
diff
changeset
|
6 public class Evento : Identificable |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 { |
54 | 8 private readonly IList<Track> _tracks; |
9 private IList<string> _enlaces; | |
42 | 10 |
57 | 11 public static Evento Proponer(string titulo, Ponente ponente) |
54 | 12 { |
57 | 13 var evento = new Evento { Titulo = titulo, Ponente = ponente }; |
14 evento.AddTracks(new Track(Accion.Proponer)); | |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
15 |
57 | 16 return evento; |
17 } | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
18 |
57 | 19 public static Evento Publicar(string titulo, Ponente ponente, DateTime fecha) |
20 { | |
21 var evento = new Evento { Titulo = titulo }; | |
22 evento.Publicar(ponente, fecha); | |
23 | |
24 return evento; | |
25 } | |
26 | |
27 private Evento() | |
28 { | |
54 | 29 _enlaces = new List<string>(); |
30 _tracks = new List<Track>(); | |
31 } | |
32 | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
33 public string Titulo { get; private set; } |
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
34 public DateTime? Fecha { get; private set; } |
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
35 public string Sintesis { get; private set; } |
61
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
36 |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
37 private Ponente _ponente; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
38 public Ponente Ponente |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
39 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
40 get { return _ponente; } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
41 private set |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
42 { |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
43 if (value == null && _ponente != null || value != _ponente && _ponente != null) |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
44 _ponente.RemoveEvento(this); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
45 if (value != null) |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
46 value.AddEvento(this); |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
47 _ponente = value; |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
48 } |
cb3f7b47c1f0
Relación de Ponente a Eventos de los que es el ponente.
nelopauselli
parents:
57
diff
changeset
|
49 } |
39 | 50 |
54 | 51 public IEnumerable<string> Enlaces |
52 { | |
53 get { return _enlaces; } | |
54 } | |
55 | |
56 public IEnumerable<Track> Tracks | |
57 { | |
58 get { return _tracks; } | |
59 } | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
60 |
54 | 61 public void Actualizar(Ponente ponente, DateTime? fecha) |
62 { | |
63 Ponente = ponente; | |
64 Fecha = fecha; | |
39 | 65 |
54 | 66 AddTracks(new Track(Accion.Modificar)); |
67 } | |
41
07c47ea2ac00
movimos el AddTrack a cada acción dentro de Evento
nelopauselli
parents:
39
diff
changeset
|
68 |
54 | 69 public void CambiarTitulo(string titulo) |
70 { | |
71 Titulo = titulo; | |
72 AddTracks(new Track(Accion.CambiarTitulo)); | |
73 } | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
74 |
54 | 75 public void Publicar(Ponente ponente, DateTime? fecha) |
76 { | |
77 Ponente = ponente; | |
78 Fecha = fecha; | |
79 AddTracks(new Track(Accion.Publicar)); | |
80 } | |
39 | 81 |
54 | 82 public void Realizado(DateTime fecha, string sintesis, IList<string> enlaces) |
83 { | |
84 Fecha = fecha; | |
85 Sintesis = sintesis; | |
86 _enlaces = enlaces; | |
87 } | |
39 | 88 |
54 | 89 public void Realizado(string sintesis) |
90 { | |
91 Sintesis = sintesis; | |
92 AddTracks(new Track(Accion.Realizar)); | |
93 } | |
41
07c47ea2ac00
movimos el AddTrack a cada acción dentro de Evento
nelopauselli
parents:
39
diff
changeset
|
94 |
54 | 95 private void AddTracks(Track track) |
96 { | |
97 _tracks.Add(track); | |
98 } | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
99 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
100 } |