# HG changeset patch # User nelopauselli # Date 1305387950 10800 # Node ID d149bfea38924e26c8a9afd56a7cd6f8ba5608f4 # Parent 7b3a32bbdfa027404e9a60048ad92edd1606bdfa Tratamos las validaciones como resultados y no como excepciones, dejamos las excepciones solo para lo que no esperamos que suceda. diff -r 7b3a32bbdfa0 -r d149bfea3892 Agendas/trunk/src/Agendas.Domain/Agenda.cs --- 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 GetEventosPropuestos() @@ -68,11 +73,11 @@ return _eventosRepository.GetEventosConFecha() ?? new List(); } - 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 diff -r 7b3a32bbdfa0 -r d149bfea3892 Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj --- a/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj Sat May 14 12:17:35 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agendas.Domain.csproj Sat May 14 12:45:50 2011 -0300 @@ -43,8 +43,9 @@ + - + @@ -52,6 +53,7 @@ +