diff --git a/ln.templates.http/TemplateRouter.cs b/ln.templates.http/TemplateRouter.cs index 2814bc3..f379159 100644 --- a/ln.templates.http/TemplateRouter.cs +++ b/ln.templates.http/TemplateRouter.cs @@ -9,7 +9,8 @@ namespace ln.templates.http public delegate void PrepareRenderContext(TemplateRouter templateRouter,TemplateDocument templateDocument, RenderContext renderContext); public class TemplateRouter : IHttpRouter { - ITemplateSource TemplateSource { get; } + public ITemplateSource TemplateSource { get; } + public String DefaultTemplatePath { get; set; } public event PrepareRenderContext OnPrepareRenderContext; @@ -20,11 +21,19 @@ namespace ln.templates.http public HttpResponse Route(HttpRoutingContext routingContext, HttpRequest httpRequest) { - TemplateDocument document = TemplateSource.GetTemplateByPath(routingContext.Path); + string lookupPath = routingContext.Path.Length > 0 ? routingContext.Path.Substring(1) : DefaultTemplatePath; + Console.WriteLine("... {0}", lookupPath); + + TemplateDocument document = TemplateSource.GetTemplateByPath(lookupPath); + if ((DefaultTemplatePath != null) && (document != null)) + document = TemplateSource.GetTemplateByPath(DefaultTemplatePath); + if (document != null) { HttpResponse response = new HttpResponse(httpRequest); RenderContext renderContext = new RenderContext(response.ContentWriter, TemplateSource); + renderContext.SetScriptObject("request", httpRequest); + renderContext.SetScriptObject("response", response); OnPrepareRenderContext?.Invoke(this, document, renderContext); document.RenderTemplate(renderContext); diff --git a/ln.templates.http/ln.templates.http.csproj b/ln.templates.http/ln.templates.http.csproj index b174d50..e2c70f2 100644 --- a/ln.templates.http/ln.templates.http.csproj +++ b/ln.templates.http/ln.templates.http.csproj @@ -15,7 +15,7 @@ - +