Mercurial > altnet-hispano
diff 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 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Sat May 14 12:17:35 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Sat May 14 12:45:50 2011 -0300 @@ -20,23 +20,25 @@ _recordador = recordador; } - public void Publicar(string titulo, string ponenteNombre, DateTime? fecha) + public Resultado Publicar(string titulo, string ponenteNombre, DateTime? fecha) { var ponente = GetPonente(ponenteNombre); var evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento (titulo); evento.Publicar(ponente, fecha); - if (!evento.Fecha.HasValue) - throw new ValidationException(); - if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) - throw new ValidationException(); + if (!evento.Fecha.HasValue) + return new Resultado(false); + if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) + return new Resultado(false); if (_publicador != null) _publicador.Publicar(evento); _eventosRepository.Save(evento); _ponenteRepository.Save(ponente); + + return new Resultado(true); } public void Recordar(Guid eventoId) @@ -46,16 +48,19 @@ _recordador.Recordar(evento); } - public void Proponer(string titulo, string ponenteNombre) + public Resultado Proponer(string titulo, string ponenteNombre) { var ponente = GetPonente(ponenteNombre); var evento = new Evento (titulo); evento.Actualizar(ponente); if (string.IsNullOrWhiteSpace(evento.Titulo)) - throw new ValidationException(); + return new Resultado(false); + _eventosRepository.Save(evento); _ponenteRepository.Save(ponente); + + return new Resultado(true); } public IList<Evento> GetEventosPropuestos() @@ -68,11 +73,11 @@ return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); } - public void ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) + public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) { var evento = _eventosRepository.Get(id); if (evento == null) - throw new EventoNotFoundException(); + throw new EventoNotFoundException(id); var ponente = GetPonente(ponenteNombre); @@ -84,6 +89,8 @@ if (_publicador != null) _publicador.Publicar(evento); + + return new Resultado(true); } public Evento GetEvento(Guid id) @@ -104,9 +111,9 @@ return ponente; } - public void ModificarPropuesta(Guid id, string titulo, string ponenteNombre) + public Resultado ModificarPropuesta(Guid id, string titulo, string ponenteNombre) { - ModificarEvento(id, titulo, ponenteNombre, null); + return ModificarEvento(id, titulo, ponenteNombre, null); } public void RealizarEvento(Guid eventoId, string sintesis) @@ -116,12 +123,4 @@ evento.Realizado(sintesis); } } - - public class EventoNotFoundException : Exception - { - } - - public class UsuarioNoAutenticadoException : Exception - { - } } \ No newline at end of file