public Response RunCassetteRequestHandler(NancyContext context)
{
try
{
logger.Info("RunCassetteRequestHandler : {0}", context.Request.Path);
if(!context.Request.Path.StartsWith(string.Concat("/", UrlModifier.CassettePrefix)))
return null;
var path = context.Request.Path.Substring(UrlModifier.CassettePrefix.Length);
if (string.IsNullOrWhiteSpace(path))
{
var handler = Container.Resolve<ICassetteRequestHandler>(DiagnosticRequestHandler.PathPrefix);
return handler.ProcessRequest(context, path);
}
if (path.StartsWith(AssetRequestHandler.PathPrefix))
{
var handler = Container.Resolve<ICassetteRequestHandler>(AssetRequestHandler.PathPrefix);
return handler.ProcessRequest(context, path);
}
if (path.StartsWith(RawFileRequestHandler.PathPrefix))
{
var handler = Container.Resolve<ICassetteRequestHandler>(RawFileRequestHandler.PathPrefix);
return handler.ProcessRequest(context, path);
}
if (path.StartsWith(BundleRequestHandler<Scripts.ScriptBundle>.PathPrefix))
{
var handler = Container.Resolve<ICassetteRequestHandler>(BundleRequestHandler<Scripts.ScriptBundle>.PathPrefix);
return handler.ProcessRequest(context, path);
}
if (path.StartsWith(BundleRequestHandler<Stylesheets.StylesheetBundle>.PathPrefix))
{
var handler = Container.Resolve<ICassetteRequestHandler>(BundleRequestHandler<Stylesheets.StylesheetBundle>.PathPrefix);
return handler.ProcessRequest(context, path);
}
if (path.StartsWith(BundleRequestHandler<HtmlTemplates.HtmlTemplateBundle>.PathPrefix))
{
var handler = Container.Resolve<ICassetteRequestHandler>(BundleRequestHandler<HtmlTemplates.HtmlTemplateBundle>.PathPrefix);
return handler.ProcessRequest(context, path);
}
return null;
}
catch(Exception ex)
{
logger.FatalException(string.Format("RunCassetteRequestHandler : {0} : {1}", ex.GetType(), ex.Message), ex);
return null;
}
}