diff 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
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Mon Aug 08 20:08:31 2011 -0300
+++ b/Agendas/trunk/src/Agendas.Domain/Agenda.cs	Mon Aug 08 21:57:10 2011 -0300
@@ -46,7 +46,7 @@
             return _eventosRepository.GetByState(EventoPublicadoState.GetInstance()) ?? new List<Evento>();
         }
 
-        public Resultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion)
+		public EventoResultado ModificarEvento(Guid eventoId, string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion)
         {
             Evento evento = GetEvento(eventoId);
             Persona persona = _personaRepository.Get(ponenteId);
@@ -61,15 +61,17 @@
 
             Notify(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado ModificarPropuesta(Guid id, string titulo, Guid ponenteId, string urlInvitacion)
         {
             return ModificarEvento(id, titulo, ponenteId, null, urlInvitacion);
         }
 
-        public Resultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo)
+		public EventoResultado Proponer(string titulo, Guid? ponenteId, string urlInvitacion, TipoEvento tipo)
         {
             Persona persona = null;
             if (ponenteId.HasValue)
@@ -78,23 +80,25 @@
             var evento = Evento.Proponer(titulo, persona, urlInvitacion, tipo);
 
             if (string.IsNullOrWhiteSpace(evento.Titulo))
-                return new Resultado(false);
+                return new EventoResultado(false, null);
 
             Notify(evento);
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado Agendar(string titulo, Guid ponenteId, DateTime? fecha, string urlInvitacion, TipoEvento tipo)
         {
             if (!fecha.HasValue)
-                return new Resultado(false);
+                return new EventoResultado(false, null);
 
             Persona persona = _personaRepository.Get(ponenteId);
             if (persona == null)
-                return new Resultado(false)
+                return new EventoResultado(false, null)
                            {Message = string.Format("No se encontró el ponente indicado ({0})", ponenteId)};
 
             Evento evento = _eventosRepository.GetPropuestaByTitulo(titulo);
@@ -107,10 +111,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado Confirmar(Guid eventoId)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado Confirmar(Guid eventoId)
         {
             Evento evento = GetEvento(eventoId);
 
@@ -120,10 +126,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
+
+			return new EventoResultado(true, warnings);
         }
 
-        public Resultado Publicar(Guid eventoId, short numeroOrden, string urlWiki, TimeSpan duracion)
+		public EventoResultado Publicar(Guid eventoId, short numeroOrden, string urlWiki, TimeSpan duracion)
         {
             if (numeroOrden <= 0)
                 throw new ArgumentOutOfRangeException("numeroOrden");
@@ -142,23 +150,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        private void Notify(Evento evento)
-        {
-            var tracks = evento.GetTrackNews();
-            if (_publicador != null)
-                _publicador.Publicar(tracks);
-        }
+			return new EventoResultado(true, warnings);
+		}
 
-        public void RegistrarPonente(string nombre, string mail, string twitter, string blog)
-        {
-            var ponente = new Persona(nombre, mail, twitter, blog);
-            _personaRepository.Save(ponente);
-        }
-
-        public Resultado Cancelar(Guid eventoId)
+		public EventoResultado Cancelar(Guid eventoId)
         {
             Evento evento = GetEvento(eventoId);
 
@@ -168,10 +165,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado Descartar(Guid eventoId)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado Descartar(Guid eventoId)
         {
             Evento evento = GetEvento(eventoId);
 
@@ -181,10 +180,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado ReProponer(Guid eventoId)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado ReProponer(Guid eventoId)
         {
             Evento evento = GetEvento(eventoId);
 
@@ -194,10 +195,12 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
 
-        public Resultado ReAgendar(Guid eventoId)
+			return new EventoResultado(true, warnings);
+		}
+
+		public EventoResultado ReAgendar(Guid eventoId)
         {
             Evento evento = GetEvento(eventoId);
 
@@ -207,8 +210,10 @@
 
             _eventosRepository.Save(evento);
 
-            return new Resultado(true);
-        }
+			var warnings = evento.GetLogsNews().Where(l => !l.Successful);
+
+			return new EventoResultado(true, warnings);
+		}
 
         public void IndicarPatrocinadores(Guid eventoId, IEnumerable<Guid> patrocinadores)
         {
@@ -238,5 +243,20 @@
             foreach (var patrocinador in quitar)
                 evento.RemovePatrocinador(patrocinador);
         }
-    }
+
+		private void Notify(Evento evento)
+		{
+			var tracks = evento.GetTrackNews();
+			if (_publicador != null)
+				_publicador.Publicar(tracks);
+		}
+
+		//TODO: este método ya no se debería usar
+		public void RegistrarPonente(string nombre, string mail, string twitter, string blog)
+		{
+			var ponente = new Persona(nombre, mail, twitter, blog);
+			_personaRepository.Save(ponente);
+		}
+
+	}
 }
\ No newline at end of file