comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 39:e548379cc314

track de cambios en evento
author nelo@MTEySS.neluz.int
date Fri, 18 Mar 2011 00:10:21 -0300
parents 3c5657d99727
children 07c47ea2ac00
comparison
equal deleted inserted replaced
38:3c5657d99727 39:e548379cc314
36 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) 36 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre))
37 throw new ValidationException(); 37 throw new ValidationException();
38 38
39 if (_publicador != null) 39 if (_publicador != null)
40 _publicador.Publicar(evento); 40 _publicador.Publicar(evento);
41
42 evento.AddTracks(new Track(Accion.Publicar));
43
41 _eventosRepository.Save(evento); 44 _eventosRepository.Save(evento);
42 _ponenteRepository.Save(ponente); 45 _ponenteRepository.Save(ponente);
43 } 46 }
44 47
45 public void Recordar(Guid eventoId) 48 public void Recordar(Guid eventoId)
86 throw new EventoNotFoundException(); 89 throw new EventoNotFoundException();
87 90
88 var ponente = GetPonente(ponenteNombre); 91 var ponente = GetPonente(ponenteNombre);
89 92
90 if (evento.Titulo != titulo) 93 if (evento.Titulo != titulo)
91 evento.CambiarTitulo(titulo); 94 {
95 evento.CambiarTitulo(titulo);
96 evento.AddTracks(new Track(Accion.CambiarTitulo));
97 }
92 98
93 evento.Actualizar(ponente, fecha); 99 if (evento.Fecha != fecha || evento.Ponente != ponente)
100 {
101 evento.Actualizar(ponente, fecha);
102 evento.AddTracks(new Track(Accion.Modificar));
103 }
94 104
95 if (_publicador != null) 105
106 if (_publicador != null)
96 _publicador.Publicar(evento); 107 _publicador.Publicar(evento);
97 } 108 }
98 109
99 public Evento GetEvento(Guid id) 110 public Evento GetEvento(Guid id)
100 { 111 {
107 _ponenteRepository.Save(ponente); 118 _ponenteRepository.Save(ponente);
108 } 119 }
109 120
110 private Ponente GetPonente(string nombre) 121 private Ponente GetPonente(string nombre)
111 { 122 {
112 return _ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre); 123 var ponente=_ponenteRepository.GetByNombre(nombre) ?? new Ponente(nombre);
124 _ponenteRepository.Save(ponente);
125 return ponente;
113 } 126 }
114 127
115 public void ModificarPropuesta(Guid id, string titulo, string ponenteNombre) 128 public void ModificarPropuesta(Guid id, string titulo, string ponenteNombre)
116 { 129 {
117 ModificarEvento(id, titulo, ponenteNombre, null); 130 ModificarEvento(id, titulo, ponenteNombre, null);
118 } 131 }
132
133 public void RealizarEvento(Guid eventoId, string sintesis)
134 {
135 var evento = _eventosRepository.Get(eventoId);
136 if (evento != null)
137 {
138 evento.Realizado(sintesis);
139 evento.AddTracks(new Track(Accion.Realizar));
140 }
141 }
119 } 142 }
120 143
121 public class EventoNotFoundException : Exception 144 public class EventoNotFoundException : Exception
122 { 145 {
123 } 146 }