Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 81:c76661cff260
Workflow de acciones sobre un evento (camino feliz)
author | nelopauselli |
---|---|
date | Tue, 24 May 2011 19:21:20 -0300 |
parents | 8df9db937434 |
children | c8897b1c6f49 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs Tue May 24 18:25:57 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs Tue May 24 19:21:20 2011 -0300 @@ -21,9 +21,12 @@ _recordador = recordador; } - public Evento GetEvento(Guid id) + public Evento GetEvento(Guid eventoId) { - return _eventosRepository.Get(id); + Evento evento =_eventosRepository.Get(eventoId); + if (evento == null) + throw new EventoNotFoundException(eventoId); + return evento; } public IList<Evento> GetEventosPropuestos() @@ -38,9 +41,7 @@ public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha, string urlInvitacion) { - Evento evento = _eventosRepository.Get(id); - if (evento == null) - throw new EventoNotFoundException(id); + Evento evento = GetEvento(id); Ponente ponente = null; if (!string.IsNullOrWhiteSpace(ponenteNombre)) @@ -54,8 +55,7 @@ else if (evento.Fecha != fecha || evento.Ponente != ponente || evento.UrlInvitacion != urlInvitacion) evento.Actualizar(ponente, fecha, urlInvitacion); - if (_publicador != null) - _publicador.Publicar(evento); + Notify(evento); return new Resultado(true); } @@ -73,6 +73,8 @@ if (string.IsNullOrWhiteSpace(evento.Titulo)) return new Resultado(false); + Notify(evento); + _eventosRepository.Save(evento); _ponenteRepository.Save(ponente); @@ -94,8 +96,7 @@ else evento.Agendar(ponente, fecha, urlInvitacion); - if (_publicador != null) - _publicador.Publicar(evento); + Notify(evento); _eventosRepository.Save(evento); _ponenteRepository.Save(ponente); @@ -103,6 +104,32 @@ return new Resultado(true); } + public Resultado Confirmar(Guid eventoId) + { + Evento evento = GetEvento(eventoId); + + evento.Confirmar(); + + Notify(evento); + + _eventosRepository.Save(evento); + + return new Resultado(true); + } + + public Resultado Publicar(Guid eventoId) + { + Evento evento = GetEvento(eventoId); + + evento.Publicar(); + + Notify(evento); + + _eventosRepository.Save(evento); + + return new Resultado(true); + } + public void Recordar(Guid eventoId) { Evento evento = _eventosRepository.Get(eventoId); @@ -110,6 +137,12 @@ _recordador.Recordar(evento); } + private void Notify(Evento evento) + { + if (_publicador != null) + _publicador.Publicar(evento); + } + public void RegistrarPonente(string nombre, string mail, string twitter, string blog) { var ponente = new Ponente(nombre, mail, twitter, blog);