public static ScriptObject From(object obj) { var scriptObject = new ScriptObject(); scriptObject.Import(obj); return(scriptObject); }
public string Render(dynamic dmodel) { try { var xmodel = new Scriban.Runtime.ScriptObject(); xmodel.Import(new { model = dmodel }, renamer: member => member.Name); var xfn = new Scriban.Runtime.ScriptObject();; xfn.Import(typeof(HlidacStatu.Lib.Render.ScribanT.Functions) , renamer: member => member.Name); var context = new Scriban.TemplateContext { MemberRenamer = member => member.Name, LoopLimit = 65000 }; context.PushCulture(System.Globalization.CultureInfo.CurrentCulture); context.PushGlobal(xmodel); context.PushGlobal(xfn); var scriptObjGlobalVariables = new ScriptObject(); foreach (var kv in this.globalVariables) { scriptObjGlobalVariables[kv.Key] = kv.Value; } context.PushGlobal(scriptObjGlobalVariables); var res = xTemplate.Render(context); return(res); } catch (Exception e) { HlidacStatu.Util.Consts.Logger.Error($"ScribanT render error\nTemplate {this.template}\n\n" + Newtonsoft.Json.JsonConvert.SerializeObject(dmodel) , e); throw; } }
public string Render(DataSet ds, dynamic dmodel, string qs = "", IReadOnlyDictionary <string, IReadOnlyCollection <string> > highlightingData = null) { string template = GetTemplateHeader(ds.DatasetId, qs) + this.body; var xTemp = Scriban.Template.Parse(template); if (xTemp.HasErrors) { throw new System.ApplicationException(xTemp .Messages .Select(m => m.ToString()) .Aggregate((f, s) => f + "\n" + s) ); } var xmodel = new Scriban.Runtime.ScriptObject(); xmodel.Import(new { model = dmodel }, renamer: member => member.Name); var xfn = new Scriban.Runtime.ScriptObject();; xfn.Import(typeof(HlidacStatu.Lib.Data.External.DataSets.Registration.Template.Functions) , renamer: member => member.Name); var context = new Scriban.TemplateContext { MemberRenamer = member => member.Name }; context.PushCulture(System.Globalization.CultureInfo.CurrentCulture); context.PushGlobal(xmodel); context.PushGlobal(xfn); var scriptObjGlobalVariables = new ScriptObject(); // Notice: MyObject is not imported but accessible through // the variable myobject scriptObjGlobalVariables["highlightingData"] = highlightingData; context.PushGlobal(scriptObjGlobalVariables); var res = xTemp.Render(context); return(res); }
public string Render(DataSet ds, dynamic dmodel) { string template = "{{func fn_DatasetItemUrl" + "\n" + $" ret ('https://www.hlidacstatu.cz/data/Detail/{ds.DatasetId}/' + $0)" + "\n" + "end}}"; template = template + "\n\n" + this.body; var xTemp = Scriban.Template.Parse(template); if (xTemp.HasErrors) { throw new System.ApplicationException(xTemp .Messages .Select(m => m.ToString()) .Aggregate((f, s) => f + "\n" + s) ); } var xmodel = new Scriban.Runtime.ScriptObject(); xmodel.Import(new { model = dmodel }, renamer: member => member.Name); var xfn = new Scriban.Runtime.ScriptObject();; xfn.Import(typeof(HlidacStatu.Lib.Data.External.DataSets.Registration.Template.Functions) , renamer: member => member.Name); var context = new Scriban.TemplateContext { MemberRenamer = member => member.Name }; context.PushCulture(System.Globalization.CultureInfo.CurrentCulture); context.PushGlobal(xmodel); context.PushGlobal(xfn); var res = xTemp.Render(context); return(res); }