using RazorLight; using System; using System.Threading.Tasks; namespace Elwig.Documents { public static class Html { private static RazorLightEngine? Engine = null; public static bool IsReady => Engine != null; public static async Task Init(Action evtHandler) { var e = new RazorLightEngineBuilder() .UseFileSystemProject(App.DataPath + "resources") .UseMemoryCachingProvider() .Build(); await e.CompileTemplateAsync("Document"); await e.CompileTemplateAsync("BusinessDocument"); await e.CompileTemplateAsync("BusinessLetter"); await e.CompileTemplateAsync("DeliveryNote"); await e.CompileTemplateAsync("CreditNote"); Engine = e; evtHandler(); } public static async Task CompileRenderAsync(string key, object model) { if (Engine == null) throw new InvalidOperationException("The razor engine has not been initialized yet"); return await Engine.CompileRenderAsync(key, model); } } }