ln.http.resources/TemplateResource.cs
Harald Wolff 1b96e6b95b WIP
2019-02-14 16:44:11 +01:00

56 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using ln.http.resources;
using ln.http;
using ln.templates;
namespace ln.http.resources
{
public class TemplateResource : Resource
{
public Template Template { get; }
public TemplateResource(Resource container,string filename)
:base(container,System.IO.Path.GetFileName(filename))
{
Template = new Template(filename, (container as TemplateProvider));
}
public override IEnumerable<Resource> GetResources()
{
return new Resource[0];
}
public override bool Contains(string name)
{
return false;
}
public override void AddResource(Resource resource)
{
throw new NotImplementedException();
}
public override void RemoveResource(Resource resource)
{
throw new NotImplementedException();
}
public override HttpResponse GetResponse(HttpRequest httpRequest)
{
HttpResponse httpResponse = new HttpResponse(httpRequest);
Template.Context context = new Template.Context(Template);
context.ExpressionContext.AddMappedValue("__root__", Root);
context.ExpressionContext.AddMappedValue("request", httpRequest);
context.ExpressionContext.AddMappedValue("response", httpResponse);
httpResponse.ContentWriter.Write(Template.Generate(context));
return httpResponse;
}
}
}