#region Disclaimer/Info
///////////////////////////////////////////////////////////////////////////////////////////////////
// Subtext WebLog
//
// Subtext is an open source weblog system that is a fork of the .TEXT
// weblog system.
//
// For updated news and information please visit http://subtextproject.com/
// Subtext is hosted at Google Code at http://code.google.com/p/subtext/
// The development mailing list is at subtext@googlegroups.com
//
// This project is licensed under the BSD license. See the License.txt file for more information.
///////////////////////////////////////////////////////////////////////////////////////////////////
#endregion
using System.Web;
using System.Web.Routing;
using Subtext.Framework.Routing;
namespace Subtext.Infrastructure{
public class PipelineService
{
public PipelineService(HttpContextBase httpContext, IServiceLocator serviceProvider)
{
HttpContext = httpContext;
ServiceProvider = serviceProvider;
}
protected HttpContextBase HttpContext { get; private set; }
protected IServiceLocator ServiceProvider { get; private set; }
public void ProcessRootRequest(RootRoute route, IRouteHandler routeHandler)
{
// todo: unit test this method
var request = HttpContext.Request;
RouteData routeData = route.GetRouteData(HttpContext);
var requestContext = new RequestContext(HttpContext, routeData);
string originalPath = request.Path;
HttpContext.RewritePath(request.ApplicationPath, false);
IHttpHandler httpHandler = routeHandler.GetHttpHandler(requestContext);
httpHandler.ProcessRequest(System.Web.HttpContext.Current);
HttpContext.RewritePath(originalPath);
}
}
}
|