Example #1
0
        public static async Task <Result> Render(string template, object dataModel, Configuration configuration = null)
        {
            var result          = new Result();
            var scribanTemplate = Template.Parse(template);

            result.AddMsgFromScribanTemplateParsing(scribanTemplate.Messages);

            if (result.HasErrors)
            {
                return(result);
            }

            var mainScriptObject = new MainScriptObject(dataModel);
            var userScriptObject = new CustomFunctionsScriptObject(configuration?.typesWithCustomFuntions);
            var context          = new MainTemplateContext(mainScriptObject, userScriptObject);

            try
            {
                await scribanTemplate.RenderAsync(context);
            }
            catch (ScriptRuntimeException exception)
            {
                result.AddMsgFromScribanException(exception);
            }

            if (result.HasErrors)
            {
                return(result);
            }

            result.AddRenderedItems(context.GetRenderedItems());

            return(result);
        }
Example #2
0
 public static void Save(MainTemplateContext context, string content, string name)
 {
     context.AddRenderedItem(new RenderedItem(name, content));
 }
Example #3
0
 /// <summary>
 /// Write text on NTypewriter output window
 /// </summary>
 public static void WriteLine(MainTemplateContext context, string text)
 {
     context.WriteOnExternalOutput(text);
 }