Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 54:3059a5f8930f
Code cleanup
author | nelopauselli |
---|---|
date | Sat, 14 May 2011 13:01:24 -0300 |
parents | d149bfea3892 |
children | 3d9e6d56d903 |
comparison
equal
deleted
inserted
replaced
53:d149bfea3892 | 54:3059a5f8930f |
---|---|
5 | 5 |
6 namespace AltNetHispano.Agendas.Domain | 6 namespace AltNetHispano.Agendas.Domain |
7 { | 7 { |
8 public class Agenda | 8 public class Agenda |
9 { | 9 { |
10 private readonly IEventoRepository _eventosRepository; | |
11 private readonly IPonenteRepository _ponenteRepository; | |
10 private readonly IPublicador _publicador; | 12 private readonly IPublicador _publicador; |
11 private readonly IRecordador _recordador; | 13 private readonly IRecordador _recordador; |
12 private readonly IEventoRepository _eventosRepository; | |
13 private readonly IPonenteRepository _ponenteRepository; | |
14 | 14 |
15 public Agenda(IPublicador publicador, IRecordador recordador, IEventoRepository eventosRepository, IPonenteRepository ponenteRepository) | 15 public Agenda(IPublicador publicador, IRecordador recordador, IEventoRepository eventosRepository, |
16 IPonenteRepository ponenteRepository) | |
16 { | 17 { |
17 _publicador = publicador; | 18 _publicador = publicador; |
18 _ponenteRepository = ponenteRepository; | 19 _ponenteRepository = ponenteRepository; |
19 _eventosRepository = eventosRepository; | 20 _eventosRepository = eventosRepository; |
20 _recordador = recordador; | 21 _recordador = recordador; |
21 } | 22 } |
22 | 23 |
23 public Resultado Publicar(string titulo, string ponenteNombre, DateTime? fecha) | 24 public Evento GetEvento(Guid id) |
24 { | 25 { |
25 var ponente = GetPonente(ponenteNombre); | 26 return _eventosRepository.Get(id); |
27 } | |
26 | 28 |
27 var evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento (titulo); | 29 public IList<Evento> GetEventosPropuestos() |
28 evento.Publicar(ponente, fecha); | 30 { |
31 return _eventosRepository.GetEventosSinFecha() ?? new List<Evento>(); | |
32 } | |
29 | 33 |
30 if (!evento.Fecha.HasValue) | 34 public IList<Evento> GetEventosPublicados() |
31 return new Resultado(false); | 35 { |
32 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) | 36 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); |
33 return new Resultado(false); | 37 } |
34 | 38 |
35 if (_publicador != null) | 39 public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) |
36 _publicador.Publicar(evento); | 40 { |
41 Evento evento = _eventosRepository.Get(id); | |
42 if (evento == null) | |
43 throw new EventoNotFoundException(id); | |
37 | 44 |
38 _eventosRepository.Save(evento); | 45 Ponente ponente = GetPonente(ponenteNombre); |
39 _ponenteRepository.Save(ponente); | |
40 | 46 |
41 return new Resultado(true); | 47 if (evento.Titulo != titulo) |
42 } | 48 evento.CambiarTitulo(titulo); |
43 | 49 |
44 public void Recordar(Guid eventoId) | 50 if (evento.Fecha != fecha || evento.Ponente != ponente) |
51 evento.Actualizar(ponente, fecha); | |
52 | |
53 if (_publicador != null) | |
54 _publicador.Publicar(evento); | |
55 | |
56 return new Resultado(true); | |
57 } | |
58 | |
59 public Resultado ModificarPropuesta(Guid id, string titulo, string ponenteNombre) | |
45 { | 60 { |
46 var evento = _eventosRepository.Get(eventoId); | 61 return ModificarEvento(id, titulo, ponenteNombre, null); |
47 if (_recordador != null) | |
48 _recordador.Recordar(evento); | |
49 } | 62 } |
50 | 63 |
51 public Resultado Proponer(string titulo, string ponenteNombre) | 64 public Resultado Proponer(string titulo, string ponenteNombre) |
52 { | 65 { |
53 var ponente = GetPonente(ponenteNombre); | 66 Ponente ponente = GetPonente(ponenteNombre); |
54 var evento = new Evento (titulo); | 67 var evento = new Evento(titulo); |
55 evento.Actualizar(ponente); | 68 evento.Actualizar(ponente); |
56 | 69 |
57 if (string.IsNullOrWhiteSpace(evento.Titulo)) | 70 if (string.IsNullOrWhiteSpace(evento.Titulo)) |
58 return new Resultado(false); | 71 return new Resultado(false); |
59 | 72 |
60 _eventosRepository.Save(evento); | 73 _eventosRepository.Save(evento); |
61 _ponenteRepository.Save(ponente); | 74 _ponenteRepository.Save(ponente); |
62 | 75 |
63 return new Resultado(true); | 76 return new Resultado(true); |
64 } | 77 } |
65 | 78 |
66 public IList<Evento> GetEventosPropuestos() | 79 public Resultado Publicar(string titulo, string ponenteNombre, DateTime? fecha) |
67 { | 80 { |
68 return _eventosRepository.GetEventosSinFecha() ?? new List<Evento>(); | 81 Ponente ponente = GetPonente(ponenteNombre); |
69 } | |
70 | 82 |
71 public IList<Evento> GetEventosPublicados() | 83 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento(titulo); |
72 { | 84 evento.Publicar(ponente, fecha); |
73 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); | |
74 } | |
75 | 85 |
76 public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) | 86 if (!evento.Fecha.HasValue) |
77 { | 87 return new Resultado(false); |
78 var evento = _eventosRepository.Get(id); | 88 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) |
79 if (evento == null) | 89 return new Resultado(false); |
80 throw new EventoNotFoundException(id); | |
81 | 90 |
82 var ponente = GetPonente(ponenteNombre); | 91 if (_publicador != null) |
92 _publicador.Publicar(evento); | |
83 | 93 |
84 if (evento.Titulo != titulo) | 94 _eventosRepository.Save(evento); |
85 evento.CambiarTitulo(titulo); | 95 _ponenteRepository.Save(ponente); |
86 | |
87 if (evento.Fecha != fecha || evento.Ponente != ponente) | |
88 evento.Actualizar(ponente, fecha); | |
89 | |
90 if (_publicador != null) | |
91 _publicador.Publicar(evento); | |
92 | 96 |
93 return new Resultado(true); | 97 return new Resultado(true); |
94 } | 98 } |
95 | 99 |
96 public Evento GetEvento(Guid id) | 100 public void RealizarEvento(Guid eventoId, string sintesis) |
97 { | 101 { |
98 return _eventosRepository.Get(id); | 102 Evento evento = _eventosRepository.Get(eventoId); |
103 if (evento != null) | |
104 evento.Realizado(sintesis); | |
105 } | |
106 | |
107 public void Recordar(Guid eventoId) | |
108 { | |
109 Evento evento = _eventosRepository.Get(eventoId); | |
110 if (_recordador != null) | |
111 _recordador.Recordar(evento); | |
99 } | 112 } |
100 | 113 |
101 public void RegistrarPonente(string nombre, string mail, string twitter, string blog) | 114 public void RegistrarPonente(string nombre, string mail, string twitter, string blog) |
102 { | 115 { |
103 var ponente = new Ponente(nombre, mail, twitter, blog); | 116 var ponente = new Ponente(nombre, mail, twitter, blog); |
104 _ponenteRepository.Save(ponente); | 117 _ponenteRepository.Save(ponente); |
105 } | 118 } |
106 | 119 |
107 private Ponente GetPonente(string nombre) | 120 private Ponente GetPonente(string nombre) |
108 { | 121 { |
109 var ponente=_ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre); | 122 Ponente ponente = _ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre); |
110 _ponenteRepository.Save(ponente); | 123 _ponenteRepository.Save(ponente); |
111 return ponente; | 124 return ponente; |
112 } | 125 } |
113 | |
114 public Resultado ModificarPropuesta(Guid id, string titulo, string ponenteNombre) | |
115 { | |
116 return ModificarEvento(id, titulo, ponenteNombre, null); | |
117 } | |
118 | |
119 public void RealizarEvento(Guid eventoId, string sintesis) | |
120 { | |
121 var evento = _eventosRepository.Get(eventoId); | |
122 if (evento != null) | |
123 evento.Realizado(sintesis); | |
124 } | |
125 } | 126 } |
126 } | 127 } |