diff Agendas/trunk/src/Agendas.Web/Controllers/ControllerMessageExtensions.cs @ 117:7ef7e4bb71f6

manejo de mensajes al usuario
author Nelo@Kenia.neluz.int
date Sun, 19 Jun 2011 13:35:34 -0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Agendas/trunk/src/Agendas.Web/Controllers/ControllerMessageExtensions.cs	Sun Jun 19 13:35:34 2011 -0300
@@ -0,0 +1,45 @@
+using System;
+using System.Web.Mvc;
+
+namespace AltNetHispano.Agendas.Web.Controllers
+{
+	public static class ControllerMessageExtensions
+	{
+		public static void AddError(this Controller controller, string mensaje)
+		{
+			AddMessage(controller, "error", mensaje);
+		}
+
+		public static void AddNotification(this Controller controller, string mensaje)
+		{
+			AddMessage(controller, "notification", mensaje);
+		}
+
+		public static void AddWarning(this Controller controller, string mensaje)
+		{
+			AddMessage(controller, "warning", mensaje);
+		}
+
+		#region protected and private members
+
+		private static void AddMessage(Controller controller, string key, string mensaje)
+		{
+			if (controller == null) throw new ArgumentNullException("controller");
+			if (key == null) throw new ArgumentNullException("key");
+			if (mensaje == null) throw new ArgumentNullException("mensaje");
+
+			if (mensaje == string.Empty) return;
+
+			var mensajes = mensaje.Contains("\n") ? mensaje.Replace("\r", string.Empty).Split('\n') : new[] {mensaje};
+
+			foreach (var m in mensajes)
+			{
+				if (controller.TempData.ContainsKey(key))
+					controller.TempData[key] += "<br />";
+				controller.TempData[key] += m;
+			}
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file