Mercurial > altnet-hispano
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