36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using RazorLight;
 | 
						|
using System;
 | 
						|
using System.Threading.Tasks;
 | 
						|
 | 
						|
namespace Elwig.Helpers.Printing {
 | 
						|
    public static class Html {
 | 
						|
 | 
						|
        private static RazorLightEngine? Engine = null;
 | 
						|
        public static bool IsReady => Engine != null;
 | 
						|
 | 
						|
        public static async Task Init(Action? evtHandler = null) {
 | 
						|
            var e = new RazorLightEngineBuilder()
 | 
						|
                .UseFileSystemProject(App.DocumentsPath)
 | 
						|
                .UseMemoryCachingProvider()
 | 
						|
                .Build();
 | 
						|
 | 
						|
            await e.CompileTemplateAsync("Document");
 | 
						|
            await e.CompileTemplateAsync("BusinessDocument");
 | 
						|
            await e.CompileTemplateAsync("BusinessLetter");
 | 
						|
            await e.CompileTemplateAsync("DeliveryNote");
 | 
						|
            await e.CompileTemplateAsync("CreditNote");
 | 
						|
            await e.CompileTemplateAsync("DeliveryJournal");
 | 
						|
            await e.CompileTemplateAsync("Letterhead");
 | 
						|
            await e.CompileTemplateAsync("DeliveryConfirmation");
 | 
						|
 | 
						|
            Engine = e;
 | 
						|
            evtHandler?.Invoke();
 | 
						|
        }
 | 
						|
 | 
						|
        public static async Task<string> 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);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |