comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 182:beeb48ddb44a

Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
author nelopauselli
date Mon, 08 Aug 2011 21:57:10 -0300
parents 5c94b052d838
children 212c664db5aa
comparison
equal deleted inserted replaced
181:6ee05ceea8c3 182:beeb48ddb44a
44 public IEnumerable<Evento> GetHistorico() 44 public IEnumerable<Evento> GetHistorico()
45 { 45 {
46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>(); 46 return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>();
47 } 47 }
48 48
49 public Resultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion) 49 public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion)
50 { 50 {
51 Evento evento = GetEvento(eventoId); 51 Evento evento = GetEvento(eventoId);
52 Persona persona = _personaRepository.Get(ponenteId); 52 Persona persona = _personaRepository.Get(ponenteId);
53 53
54 if (evento.Titulo != titulo) 54 if (evento.Titulo != titulo)
59 else if (evento.Fecha != fecha || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion) 59 else if (evento.Fecha != fecha || evento.Ponente != persona || evento.UrlInvitacion != urlInvitacion)
60 evento.Actualizar(persona, fecha, urlInvitacion); 60 evento.Actualizar(persona, fecha, urlInvitacion);
61 61
62 Notify(evento); 62 Notify(evento);
63 63
64 return new Resultado(true); 64 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
65 } 65
66 66 return new EventoResultado(true, warnings);
67 public Resultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion) 67 }
68
69 public EventoResultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion)
68 { 70 {
69 return ModificarEvento(id, titulo, ponenteId, null, urlInvitacion); 71 return ModificarEvento(id, titulo, ponenteId, null, urlInvitacion);
70 } 72 }
71 73
72 public Resultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo) 74 public EventoResultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo)
73 { 75 {
74 Persona persona = null; 76 Persona persona = null;
75 if (ponenteId.HasValue) 77 if (ponenteId.HasValue)
76 persona = _personaRepository.Get(ponenteId.Value); 78 persona = _personaRepository.Get(ponenteId.Value);
77 79
78 var evento = Evento.Proponer(titulo, persona, urlInvitacion, tipo); 80 var evento = Evento.Proponer(titulo, persona, urlInvitacion, tipo);
79 81
80 if (string.IsNullOrWhiteSpace(evento.Titulo)) 82 if (string.IsNullOrWhiteSpace(evento.Titulo))
81 return new Resultado(false); 83 return new EventoResultado(false, null);
82 84
83 Notify(evento); 85 Notify(evento);
84 86
85 _eventosRepository.Save(evento); 87 _eventosRepository.Save(evento);
86 88
87 return new Resultado(true); 89 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
88 } 90
89 91 return new EventoResultado(true, warnings);
90 public Resultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo) 92 }
93
94 public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo)
91 { 95 {
92 if (!fecha.HasValue) 96 if (!fecha.HasValue)
93 return new Resultado(false); 97 return new EventoResultado(false, null);
94 98
95 Persona persona = _personaRepository.Get(ponenteId); 99 Persona persona = _personaRepository.Get(ponenteId);
96 if (persona == null) 100 if (persona == null)
97 return new Resultado(false) 101 return new EventoResultado(false, null)
98 {Message = string.Format("No se encontró el ponente indicado ({0})", ponenteId)}; 102 {Message = string.Format("No se encontró el ponente indicado ({0})", ponenteId)};
99 103
100 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo); 104 Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo);
101 if (evento == null) 105 if (evento == null)
102 evento = Evento.Agendar(titulo, persona, fecha.Value, urlInvitacion, tipo); 106 evento = Evento.Agendar(titulo, persona, fecha.Value, urlInvitacion, tipo);
105 109
106 Notify(evento); 110 Notify(evento);
107 111
108 _eventosRepository.Save(evento); 112 _eventosRepository.Save(evento);
109 113
110 return new Resultado(true); 114 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
111 } 115
112 116 return new EventoResultado(true, warnings);
113 public Resultado Confirmar(Guid eventoId) 117 }
118
119 public EventoResultado Confirmar(Guid eventoId)
114 { 120 {
115 Evento evento = GetEvento(eventoId); 121 Evento evento = GetEvento(eventoId);
116 122
117 evento.Confirmar(); 123 evento.Confirmar();
118 124
119 Notify(evento); 125 Notify(evento);
120 126
121 _eventosRepository.Save(evento); 127 _eventosRepository.Save(evento);
122 128
123 return new Resultado(true); 129 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
124 } 130
125 131 return new EventoResultado(true, warnings);
126 public Resultado Publicar(Guid eventoId, short numeroOrden, string urlWiki, TimeSpan duracion) 132 }
133
134 public EventoResultado Publicar(Guid eventoId, short numeroOrden, string urlWiki, TimeSpan duracion)
127 { 135 {
128 if (numeroOrden <= 0) 136 if (numeroOrden <= 0)
129 throw new ArgumentOutOfRangeException("numeroOrden"); 137 throw new ArgumentOutOfRangeException("numeroOrden");
130 138
131 if (string.IsNullOrWhiteSpace(urlWiki)) 139 if (string.IsNullOrWhiteSpace(urlWiki))
140 148
141 Notify(evento); 149 Notify(evento);
142 150
143 _eventosRepository.Save(evento); 151 _eventosRepository.Save(evento);
144 152
145 return new Resultado(true); 153 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
146 } 154
147 155 return new EventoResultado(true, warnings);
148 private void Notify(Evento evento) 156 }
149 { 157
150 var tracks = evento.GetTrackNews(); 158 public EventoResultado Cancelar(Guid eventoId)
151 if (_publicador != null)
152 _publicador.Publicar(tracks);
153 }
154
155 public void RegistrarPonente(string nombre, string mail, string twitter, string blog)
156 {
157 var ponente = new Persona(nombre, mail, twitter, blog);
158 _personaRepository.Save(ponente);
159 }
160
161 public Resultado Cancelar(Guid eventoId)
162 { 159 {
163 Evento evento = GetEvento(eventoId); 160 Evento evento = GetEvento(eventoId);
164 161
165 evento.Cancelar(); 162 evento.Cancelar();
166 163
167 Notify(evento); 164 Notify(evento);
168 165
169 _eventosRepository.Save(evento); 166 _eventosRepository.Save(evento);
170 167
171 return new Resultado(true); 168 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
172 } 169
173 170 return new EventoResultado(true, warnings);
174 public Resultado Descartar(Guid eventoId) 171 }
172
173 public EventoResultado Descartar(Guid eventoId)
175 { 174 {
176 Evento evento = GetEvento(eventoId); 175 Evento evento = GetEvento(eventoId);
177 176
178 evento.Descartar(); 177 evento.Descartar();
179 178
180 Notify(evento); 179 Notify(evento);
181 180
182 _eventosRepository.Save(evento); 181 _eventosRepository.Save(evento);
183 182
184 return new Resultado(true); 183 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
185 } 184
186 185 return new EventoResultado(true, warnings);
187 public Resultado ReProponer(Guid eventoId) 186 }
187
188 public EventoResultado ReProponer(Guid eventoId)
188 { 189 {
189 Evento evento = GetEvento(eventoId); 190 Evento evento = GetEvento(eventoId);
190 191
191 evento.ReProponer(); 192 evento.ReProponer();
192 193
193 Notify(evento); 194 Notify(evento);
194 195
195 _eventosRepository.Save(evento); 196 _eventosRepository.Save(evento);
196 197
197 return new Resultado(true); 198 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
198 } 199
199 200 return new EventoResultado(true, warnings);
200 public Resultado ReAgendar(Guid eventoId) 201 }
202
203 public EventoResultado ReAgendar(Guid eventoId)
201 { 204 {
202 Evento evento = GetEvento(eventoId); 205 Evento evento = GetEvento(eventoId);
203 206
204 evento.ReAgendar(); 207 evento.ReAgendar();
205 208
206 Notify(evento); 209 Notify(evento);
207 210
208 _eventosRepository.Save(evento); 211 _eventosRepository.Save(evento);
209 212
210 return new Resultado(true); 213 var warnings = evento.GetLogsNews().Where(l => !l.Successful);
211 } 214
215 return new EventoResultado(true, warnings);
216 }
212 217
213 public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores) 218 public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores)
214 { 219 {
215 var evento = GetEvento(eventoId); 220 var evento = GetEvento(eventoId);
216 221
236 evento.AddPatrocinador(patrocinador); 241 evento.AddPatrocinador(patrocinador);
237 242
238 foreach (var patrocinador in quitar) 243 foreach (var patrocinador in quitar)
239 evento.RemovePatrocinador(patrocinador); 244 evento.RemovePatrocinador(patrocinador);
240 } 245 }
241 } 246
247 private void Notify(Evento evento)
248 {
249 var tracks = evento.GetTrackNews();
250 if (_publicador != null)
251 _publicador.Publicar(tracks);
252 }
253
254 //TODO: este método ya no se debería usar
255 public void RegistrarPonente(string nombre, string mail, string twitter, string blog)
256 {
257 var ponente = new Persona(nombre, mail, twitter, blog);
258 _personaRepository.Save(ponente);
259 }
260
261 }
242 } 262 }