using System; using System.Collections.Specialized; using System.Globalization; using System.Text; using Telligent.Evolution.Extensibility.Api.Version1; using Telligent.Evolution.Extensibility.UI.Version1; namespace Telligent.Evolution.Examples { public class SampleCallback : IHttpCallback, IHtmlHeaderExtension { #region IHttpCallback Members void IHttpCallback.ProcessRequest(System.Web.HttpContextBase httpContext) { var value = String.Empty; if (httpContext.Request.QueryString["value"] != null) value = httpContext.Request.QueryString["value"].ToString(CultureInfo.InvariantCulture); if (!String.IsNullOrEmpty(value)) { httpContext.Response.ContentType = "text/javascript"; httpContext.Response.Write("alert('" + PublicApi.Html.EnsureEncoded(value) + "');"); } else { httpContext.Response.StatusCode = 404; return; } } IHttpCallbackController _callbackController; void IHttpCallback.SetController(IHttpCallbackController controller) { _callbackController = controller; } #endregion #region IHtmlHeaderExtension Members string IHtmlHeaderExtension.GetHeader(RenderTarget target) { var javascript1 = new NameValueCollection(); javascript1["value"] = "Sample Callback Response"; var sb = new StringBuilder(); sb.AppendFormat(@"", _callbackController.GetUrl(javascript1)); sb.AppendFormat(@"", _callbackController.GetUrl()); return sb.ToString(); } bool IHtmlHeaderExtension.IsCacheable { get { return true; } } bool IHtmlHeaderExtension.VaryCacheByUser { get { return false; } } #endregion #region IPlugin Members string Extensibility.Version1.IPlugin.Description { get { return "Uses an IHttpCallback to display messages in the browser console."; } } void Extensibility.Version1.IPlugin.Initialize() { } string Extensibility.Version1.IPlugin.Name { get { return "Sample Callback"; } } #endregion } }