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
}
}