// // YavscAjaxHelper.cs // // Author: // Paul Schneider // // Copyright (c) 2015 GNU GPL // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with this program. If not, see . using System; using System.Web.Mvc; using System.Collections.Generic; using Yavsc.Model.Messaging; using System.Runtime.Serialization.Json; using System.IO; using System.Text; namespace Yavsc.Helpers { /// /// Yavsc ajax helper. /// public static class YavscAjaxHelper { /// /// Notify the specified helper, message and click_action. /// /// Helper. /// Message. /// Click action. public static void Notify(this AjaxHelper helper, object message, string click_action=null) { if (helper.ViewData ["Notifications"] == null) helper.ViewData ["Notifications"] = new List (); (helper.ViewData ["Notifications"] as List).Add ( new Notification { body = QuoteJavascriptString((string)message), click_action = click_action } ) ; } /// /// Quotes the javascript string. /// /// The javascript string. /// String. public static string QuoteJavascriptString(object str) { string tmpstr = (string) str; tmpstr = tmpstr.Replace ("\n", "\\n"); if (tmpstr.Contains ("'")) if (tmpstr.Contains ("\"")) return "'" + tmpstr.Replace ("'", "\\'") + "'"; else return "\"" + tmpstr + "\""; return "'" + tmpstr + "'"; } /// /// Js the son string. /// /// The son string. /// Helper. /// Object. public static string JSonString(this AjaxHelper helper, object obj) { string result = null; DataContractJsonSerializer ser = new DataContractJsonSerializer (obj.GetType()); var e = Encoding.UTF8; using (MemoryStream streamQuery = new MemoryStream ()) { ser.WriteObject (streamQuery, obj); streamQuery.Seek (0, SeekOrigin.Begin); using (StreamReader sr = new StreamReader (streamQuery)) { result = sr.ReadToEnd (); } } return result; } /// /// Js the string. /// /// The string. /// Helper. /// Text. public static string JString(this AjaxHelper helper, object text) { return QuoteJavascriptString ((string)text); } } }