public override void Render(RenderContext context)
{
var value = context.GetValue(_path);
var lambda = CheckValueIsDelegateOrLambda(value);
if (lambda != null)
{
var lambdaResult = lambda().ToString();
lambdaResult = _escaped
? Encoders.HtmlEncode(lambdaResult.ToString())
: lambdaResult.ToString();
using (System.IO.TextReader sr = new System.IO.StringReader(lambdaResult))
{
Template template = new Template();
template.StartDelimiter = "{{";
template.EndDelimiter = "}}";
template.Load(sr);
context.Enter(template);
template.Render(context);
context.Exit();
return;
}
}
var helper = value as HelperProxy;
if (helper != null)
{
helper(data => { }, data => { });
}
else if (value != null)
{
context.Write(_escaped
? Encoders.HtmlEncode(value.ToString())
: value.ToString());
}
}