Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 57:3d9e6d56d903
Refactoring del track de cambios de un evento
author | nelopauselli |
---|---|
date | Mon, 16 May 2011 20:23:31 -0300 |
parents | 3059a5f8930f |
children | 4a4e12e32256 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Mon May 16 20:15:05 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Mon May 16 20:23:31 2011 -0300 @@ -64,8 +64,7 @@ public Resultado Proponer(string titulo, string ponenteNombre) { Ponente ponente = GetPonente(ponenteNombre); - var evento = new Evento(titulo); - evento.Actualizar(ponente); + var evento = Evento.Proponer(titulo, ponente); if (string.IsNullOrWhiteSpace(evento.Titulo)) return new Resultado(false); @@ -78,15 +77,18 @@ public Resultado Publicar(string titulo, string ponenteNombre, DateTime? fecha) { + if (!fecha.HasValue) + return new Resultado(false); + if (string.IsNullOrWhiteSpace(ponenteNombre)) + return new Resultado(false); + Ponente ponente = GetPonente(ponenteNombre); - Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento(titulo); - evento.Publicar(ponente, fecha); - - if (!evento.Fecha.HasValue) - return new Resultado(false); - if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) - return new Resultado(false); + Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); + if (evento == null) + evento = Evento.Publicar(titulo, ponente, fecha.Value); + else + evento.Publicar(ponente, fecha); if (_publicador != null) _publicador.Publicar(evento);