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