예제 #1
0
        /// <summary>
        /// Merges the lava.
        /// </summary>
        /// <param name="lavaTemplate">The lava template.</param>
        /// <param name="context">The context.</param>
        /// <returns></returns>
        private string MergeLava(string lavaTemplate, ILavaRenderContext context)
        {
            // Resolve the Lava template contained in this block in a new context.
            var engine = context.GetService <ILavaEngine>();

            var newContext = engine.NewRenderContext();

            newContext.SetMergeFields(context.GetMergeFields());
            newContext.SetInternalFields(context.GetInternalFields());

            // Resolve the inner template.
            var result = engine.RenderTemplate(lavaTemplate, LavaRenderParameters.WithContext(newContext));

            return(result.Text);
        }